Страница: 1 |
Страница: 1 |
Вопрос: Как преобразовать данные при вводе?
Добавлено: 22.05.07 12:50
Автор вопроса:
Andrew_nik
Написал процедуру, которая преобразовывает числовые значения в столбце "B" во время в формате "h:mm".
Был бы благодарен если кто-то мог подсказать какая функция отвечает за изменение значения в активной ячейке листа Excel? - Хотелось бы не запускать каждый раз макрос, а вводить данные в ячейку и чтобы те преобразовывались автоматически.
Sub Time()
Dim Str1 As String
Dim a As Integer
Dim d As Date
Range("b1").Select
a = 1
Do While ActiveCell.Value <> 0
Str1 = Mid(ActiveCell.Value, 1, 2) & ":" & Mid(ActiveCell.Value, 3, 4)
d = Str1
ActiveCell.Value = d
a = a + 1
Cells(a, 2).Select ' переходим к следующей ячейке
Loop
Range("b1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "h:mm"
End Sub
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа: RAVER
ICQ: 1005765
Вопросов: 6
Ответов: 10
Профиль | | #1
Добавлено: 22.05.07 13:40
в событиях листа запуска свой макрос :
Private Sub Worksheet_Change(ByVal Target As Range)
call macros
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
call macros
End Sub
Номер ответа: 2
Автор ответа: RAVER
ICQ: 1005765
Вопросов: 6
Ответов: 10
Профиль | | #2
Добавлено: 22.05.07 13:50
точнее лучше тока на change ставить )))
Номер ответа: 3
Автор ответа: Meh&vb
ICQ: 195578509
Вопросов: 8
Ответов: 25
Профиль | | #3
Добавлено: 31.05.07 10:22
Я думаю,проще было бы задать формать сразу всего столбца перед вводом, а не перебирать каждую ячейку.
Простите,а предыдущий совет маленько не корректен - надо сначала проверить, что именно столбец В редактируется, а потом уже запускать макрос, вот
Номер ответа: 4
Автор ответа: RAVER
ICQ: 1005765
Вопросов: 6
Ответов: 10
Профиль | | #4
Добавлено: 31.05.07 18:36
2 Meh&vb :
да конечно ^)