Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Деление текстовых переменных - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Деление текстовых переменных (Макросы/Sub)
Деление текстовых переменных
Sashagor1982 Дата: Вторник, 19.08.2014, 00:15 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Уважаемые форумчане, в приложенном файле в ячейке А1 содержится строка "837037" в результате работы макроса
[vba]
Код
Sub Delen()
     Cells(5, 1).Value = Left(Cells(1, 1), 3)
     Cells(5, 2).Value = Right(Cells(1, 1), 3)
End Sub
[/vba]
в ячейки помещаются строки "837" и "37" соответственно. Необходимо построить макрос таким образом, что бы строки содержали бы выражения "837" и "037", проще говоря не выбрасывали бы нули. Заранее спасибо
К сообщению приложен файл: 2840352.xls (33.0 Kb)
 
Ответить
СообщениеУважаемые форумчане, в приложенном файле в ячейке А1 содержится строка "837037" в результате работы макроса
[vba]
Код
Sub Delen()
     Cells(5, 1).Value = Left(Cells(1, 1), 3)
     Cells(5, 2).Value = Right(Cells(1, 1), 3)
End Sub
[/vba]
в ячейки помещаются строки "837" и "37" соответственно. Необходимо построить макрос таким образом, что бы строки содержали бы выражения "837" и "037", проще говоря не выбрасывали бы нули. Заранее спасибо

Автор - Sashagor1982
Дата добавления - 19.08.2014 в 00:15
RAN Дата: Вторник, 19.08.2014, 00:23 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Числа 037 не бывает.
[vba]
Код
Sub Delen()
     Range("A5:B5").NumberFormat = "@"
     Cells(5, 1).Value = Left(Cells(1, 1), 3)
     Cells(5, 2).Value = CStr(Right(Cells(1, 1), 3))
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЧисла 037 не бывает.
[vba]
Код
Sub Delen()
     Range("A5:B5").NumberFormat = "@"
     Cells(5, 1).Value = Left(Cells(1, 1), 3)
     Cells(5, 2).Value = CStr(Right(Cells(1, 1), 3))
End Sub
[/vba]

Автор - RAN
Дата добавления - 19.08.2014 в 00:23
Sashagor1982 Дата: Вторник, 19.08.2014, 14:40 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Дело в том, что это часть программы. Текстовая переменная vVys содержит "837037" надо что бы в одну ячейку было помещено значение "837" в другую "037"
[vba]
Код
Sub Delen()
dim vVys as string
vVys="837037"
     Cells(5, 1).Value = Left(vVys, 3)
     Cells(5, 2).Value = Right(vVys, 3)
End Sub
[/vba]
Необходимо что бы во вторую ячейку было помещено именно "037"
 
Ответить
СообщениеДело в том, что это часть программы. Текстовая переменная vVys содержит "837037" надо что бы в одну ячейку было помещено значение "837" в другую "037"
[vba]
Код
Sub Delen()
dim vVys as string
vVys="837037"
     Cells(5, 1).Value = Left(vVys, 3)
     Cells(5, 2).Value = Right(vVys, 3)
End Sub
[/vba]
Необходимо что бы во вторую ячейку было помещено именно "037"

Автор - Sashagor1982
Дата добавления - 19.08.2014 в 14:40
Alex_ST Дата: Вторник, 19.08.2014, 15:21 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну Вам же ответил Андрей:
Числа 037 не бывает

А если Вам нужно чтобы в ячейке было именно ЗНАЧЕНИЕ 037, то это возможно только в текстовом формате.
Что как раз и делает команда [vba]
Код
Range("A5:B5").NumberFormat = "@"
[/vba]Ну, или тупо сделайте из числа текст, добавив апострофы[vba]
Код
Sub Delen()
    Dim vVys As String
    vVys = "837037"
    Cells(5, 1).Value = "'" & Left(vVys, 3)
    Cells(5, 2).Value = "'" & Right(vVys, 3)
End Sub
[/vba]Правда, зачем это нужно - на Вашей совести, т.к. такие значения в формулах считаться не могут (они же - текст).
Другое дело, если Вам нужно, чтобы в ячейке только ОТОБРАЖАЛОСЬ 037, но реально это было бы число и в дальнейшем оно могло бы использоваться в расчётах.
Тогда примените формат с фиксированным количеством отображаемых знаков[vba]
Код
Range("A5:B5").NumberFormat = "000"
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 19.08.2014, 15:28
 
Ответить
СообщениеНу Вам же ответил Андрей:
Числа 037 не бывает

А если Вам нужно чтобы в ячейке было именно ЗНАЧЕНИЕ 037, то это возможно только в текстовом формате.
Что как раз и делает команда [vba]
Код
Range("A5:B5").NumberFormat = "@"
[/vba]Ну, или тупо сделайте из числа текст, добавив апострофы[vba]
Код
Sub Delen()
    Dim vVys As String
    vVys = "837037"
    Cells(5, 1).Value = "'" & Left(vVys, 3)
    Cells(5, 2).Value = "'" & Right(vVys, 3)
End Sub
[/vba]Правда, зачем это нужно - на Вашей совести, т.к. такие значения в формулах считаться не могут (они же - текст).
Другое дело, если Вам нужно, чтобы в ячейке только ОТОБРАЖАЛОСЬ 037, но реально это было бы число и в дальнейшем оно могло бы использоваться в расчётах.
Тогда примените формат с фиксированным количеством отображаемых знаков[vba]
Код
Range("A5:B5").NumberFormat = "000"
[/vba]

Автор - Alex_ST
Дата добавления - 19.08.2014 в 15:21
Sashagor1982 Дата: Вторник, 19.08.2014, 22:25 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Нет, я же обращаю внимание, что в расчетах использоваться не должно, но ВАЖНО, что бы было именно "037", так как это код.
 
Ответить
СообщениеНет, я же обращаю внимание, что в расчетах использоваться не должно, но ВАЖНО, что бы было именно "037", так как это код.

Автор - Sashagor1982
Дата добавления - 19.08.2014 в 22:25
Sashagor1982 Дата: Вторник, 19.08.2014, 22:27 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Спасибо, данный макрос помог hands
 
Ответить
СообщениеСпасибо, данный макрос помог hands

Автор - Sashagor1982
Дата добавления - 19.08.2014 в 22:27
Alex_ST Дата: Среда, 20.08.2014, 08:11 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
я же обращаю внимание, что в расчетах использоваться не должно, но ВАЖНО, что бы было именно "037", так как это код
Где это? Мы с Андреем, наверное, ослепли :(
данный макрос помог
Который из них?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
я же обращаю внимание, что в расчетах использоваться не должно, но ВАЖНО, что бы было именно "037", так как это код
Где это? Мы с Андреем, наверное, ослепли :(
данный макрос помог
Который из них?

Автор - Alex_ST
Дата добавления - 20.08.2014 в 08:11
Hugo Дата: Среда, 20.08.2014, 10:00 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Который из них?

Тогда уж "данный кем?" :)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение
Который из них?

Тогда уж "данный кем?" :)

Автор - Hugo
Дата добавления - 20.08.2014 в 10:00
Sashagor1982 Дата: Пятница, 22.08.2014, 18:50 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 287
Репутация: -6 ±
Замечаний: 0% ±

Excel 2007
Cells(5, 1).Value = "'" & Left(vVys, 3)
Cells(5, 2).Value = "'" & Right(vVys, 3)

Вот этот использовал, все получилось
 
Ответить
Сообщение
Cells(5, 1).Value = "'" & Left(vVys, 3)
Cells(5, 2).Value = "'" & Right(vVys, 3)

Вот этот использовал, все получилось

Автор - Sashagor1982
Дата добавления - 22.08.2014 в 18:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Деление текстовых переменных (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!