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

Вход

Регистрация

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

 

= Мир MS Excel/Разнести числа в разные столбцы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разнести числа в разные столбцы (Макросы Sub)
Разнести числа в разные столбцы
Espada Дата: Понедельник, 21.10.2013, 15:53 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

Всем привет! может кто-нибудь подскажет как решить проблему? на форме, в строчку записываются 2 числа через "/". при нажатии на кнопку нужно чтобы, эти два числа, стали в 2 разные ячейки.(Пример:нажимаем на кнопку"добавить новую запись", открывается форма, далее в поле числа записываем числа 34/0.5, нажимаем добавить, и в итогде в ячейку А1 должно попасть число 34, а в ячейку В1 число 0.5 )
 
Ответить
СообщениеВсем привет! может кто-нибудь подскажет как решить проблему? на форме, в строчку записываются 2 числа через "/". при нажатии на кнопку нужно чтобы, эти два числа, стали в 2 разные ячейки.(Пример:нажимаем на кнопку"добавить новую запись", открывается форма, далее в поле числа записываем числа 34/0.5, нажимаем добавить, и в итогде в ячейку А1 должно попасть число 34, а в ячейку В1 число 0.5 )

Автор - Espada
Дата добавления - 21.10.2013 в 15:53
IZ Дата: Понедельник, 21.10.2013, 16:03 | Сообщение № 2
Группа: Гости
Используйте функцию split
 
Ответить
СообщениеИспользуйте функцию split

Автор - IZ
Дата добавления - 21.10.2013 в 16:03
SkyPro Дата: Понедельник, 21.10.2013, 16:13 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код
t = [c1].Value ' значение из вашего текстового поля
Z = Split(t, "/") ' массив {"до разделителя", "после разделителя"}
[a1].Value = Z(0) 'вывод первого элемента массива
[b1].Value = Z(1) 'вывод второго элемента массива
[/vba]


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 21.10.2013, 16:14
 
Ответить
Сообщение[vba]
Код
t = [c1].Value ' значение из вашего текстового поля
Z = Split(t, "/") ' массив {"до разделителя", "после разделителя"}
[a1].Value = Z(0) 'вывод первого элемента массива
[b1].Value = Z(1) 'вывод второго элемента массива
[/vba]

Автор - SkyPro
Дата добавления - 21.10.2013 в 16:13
doober Дата: Вторник, 22.10.2013, 02:20 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Можно и так.
[vba]
Код
Range("A1").Resize(1, 2) = Split(TextBox1.Text, "/")
[/vba]


 
Ответить
СообщениеМожно и так.
[vba]
Код
Range("A1").Resize(1, 2) = Split(TextBox1.Text, "/")
[/vba]

Автор - doober
Дата добавления - 22.10.2013 в 02:20
Espada Дата: Вторник, 22.10.2013, 09:44 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

[vba]
Код
t = [c1].Value ' значение из вашего текстового поля
Z = Split(t, "/") ' массив {"до разделителя", "после разделителя"}
[a1].Value = Z(0) 'вывод первого элемента массива
[b1].Value = Z(1) 'вывод второго элемента массива
[/vba]

спасибо, а какого типа должна быть переменная Z??
 
Ответить
Сообщение
[vba]
Код
t = [c1].Value ' значение из вашего текстового поля
Z = Split(t, "/") ' массив {"до разделителя", "после разделителя"}
[a1].Value = Z(0) 'вывод первого элемента массива
[b1].Value = Z(1) 'вывод второго элемента массива
[/vba]

спасибо, а какого типа должна быть переменная Z??

Автор - Espada
Дата добавления - 22.10.2013 в 09:44
Serge_007 Дата: Вторник, 22.10.2013, 10:38 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
String или Variant


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеString или Variant

Автор - Serge_007
Дата добавления - 22.10.2013 в 10:38
Espada Дата: Вторник, 22.10.2013, 11:00 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

Всё отлично работает, спасибо
 
Ответить
СообщениеВсё отлично работает, спасибо

Автор - Espada
Дата добавления - 22.10.2013 в 11:00
Скрипт Дата: Вторник, 22.10.2013, 11:31 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 61
Репутация: 25 ±
Замечаний: 0% ±

Excel 2013
Serge_007, приведите, пожалуйста, пример, когда можно использовать переменную с типом "String" с командой "Split".

Сам вспомнил:
[vba]
Код
Sub Procedure_1()
      Dim arrMy() As String       
      arrMy() = Split("1 2 3")
End Sub
[/vba]

[vba]
Код
Sub Procedure_2()
      Dim arrMy As Variant       
      arrMy = Split("1 2 3")
End Sub
[/vba]


Сообщение отредактировал Скрипт - Вторник, 22.10.2013, 11:36
 
Ответить
СообщениеSerge_007, приведите, пожалуйста, пример, когда можно использовать переменную с типом "String" с командой "Split".

Сам вспомнил:
[vba]
Код
Sub Procedure_1()
      Dim arrMy() As String       
      arrMy() = Split("1 2 3")
End Sub
[/vba]

[vba]
Код
Sub Procedure_2()
      Dim arrMy As Variant       
      arrMy = Split("1 2 3")
End Sub
[/vba]

Автор - Скрипт
Дата добавления - 22.10.2013 в 11:31
Serge_007 Дата: Вторник, 22.10.2013, 12:12 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Да, ошибся, я про переменную t писал. Странно что у автора
Всё отлично работает
:)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеДа, ошибся, я про переменную t писал. Странно что у автора
Всё отлично работает
:)

Автор - Serge_007
Дата добавления - 22.10.2013 в 12:12
SkyPro Дата: Вторник, 22.10.2013, 12:15 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Видимо у него все-таки Вариант :)


skypro1111@gmail.com
 
Ответить
СообщениеВидимо у него все-таки Вариант :)

Автор - SkyPro
Дата добавления - 22.10.2013 в 12:15
Espada Дата: Вторник, 22.10.2013, 12:25 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

Да, ошибся, я про переменную t писал. Странно что у автора
Цитата Espada, 22.10.2013 в 11:00, в сообщении № 7
Всё отлично работает
:)


вот так получилось
[vba]
Код

Dim t As String
Dim Z As Variant
...
t = [G1].Value ' значение из вашего текстового поля
Z = Split(t, "/") ' массив {"до разделителя", "после разделителя"}
[G22].Value = Z(0) 'вывод первого элемента массива
[G23].Value = Z(1) 'вывод второго элемента массива
[/vba]
 
Ответить
Сообщение
Да, ошибся, я про переменную t писал. Странно что у автора
Цитата Espada, 22.10.2013 в 11:00, в сообщении № 7
Всё отлично работает
:)


вот так получилось
[vba]
Код

Dim t As String
Dim Z As Variant
...
t = [G1].Value ' значение из вашего текстового поля
Z = Split(t, "/") ' массив {"до разделителя", "после разделителя"}
[G22].Value = Z(0) 'вывод первого элемента массива
[G23].Value = Z(1) 'вывод второго элемента массива
[/vba]

Автор - Espada
Дата добавления - 22.10.2013 в 12:25
Espada Дата: Вторник, 22.10.2013, 12:30 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

правда, я немного не так, если записывать обычное число то выдаёт ошибку на Z(1), типа нету числа. можно ли как-то сделать поиск или что-нить, чтобы если "/" нету записывало просто в первую ячейку всё
 
Ответить
Сообщениеправда, я немного не так, если записывать обычное число то выдаёт ошибку на Z(1), типа нету числа. можно ли как-то сделать поиск или что-нить, чтобы если "/" нету записывало просто в первую ячейку всё

Автор - Espada
Дата добавления - 22.10.2013 в 12:30
SkyPro Дата: Вторник, 22.10.2013, 12:31 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Кстати, [vba]
Код
Dim Z As Variant
' можно записывать как
Dim Z
[/vba]


skypro1111@gmail.com
 
Ответить
СообщениеКстати, [vba]
Код
Dim Z As Variant
' можно записывать как
Dim Z
[/vba]

Автор - SkyPro
Дата добавления - 22.10.2013 в 12:31
Espada Дата: Вторник, 22.10.2013, 12:37 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

:D
 
Ответить
Сообщение:D

Автор - Espada
Дата добавления - 22.10.2013 в 12:37
SkyPro Дата: Вторник, 22.10.2013, 12:44 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub splt()
Dim t$
Dim Z
t = [c1].Value
     If InStr(1, t, "/") <> 0 Then
         Z = Split(t, "/")
         [a1].Value = Z(0)
         [b1].Value = Z(1)
     Else
         [a1].Value = t
     End If
End Sub
[/vba]


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Вторник, 22.10.2013, 12:46
 
Ответить
Сообщение[vba]
Код
Sub splt()
Dim t$
Dim Z
t = [c1].Value
     If InStr(1, t, "/") <> 0 Then
         Z = Split(t, "/")
         [a1].Value = Z(0)
         [b1].Value = Z(1)
     Else
         [a1].Value = t
     End If
End Sub
[/vba]

Автор - SkyPro
Дата добавления - 22.10.2013 в 12:44
Espada Дата: Вторник, 22.10.2013, 15:49 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 0 ±
Замечаний: 40% ±

примного благодарен. всё работает)
 
Ответить
Сообщениепримного благодарен. всё работает)

Автор - Espada
Дата добавления - 22.10.2013 в 15:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разнести числа в разные столбцы (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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