Страницы: 1
RSS
Автоматическая вставка текста в ячейку при вводе данных
 
В "Приемах" есть замечательный макрос http://www.planetaexcel.ru/techniques/6/44/ - Автоматическая вставка текущей даты в ячейку при вводе данных:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell in Target   'проходим по всем измененным ячейкам
    If Not Intersect(cell, Range("A2:A100"    ) Is Nothing Then  'если изменененная ячейка попадает в диапазон A2:A100
      With cell.Offset(0, 1)      'вводим в соседнюю справа ячейку дату
         .Value = Now
         .EntireColumn.AutoFit  'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
      End With
    End If
    Next cell
End Sub
подскажите, пожалуйста, как сделать так, чтобы одновременно с вводом даты я в ячейку cell.Offset(0, 1)
в ячейку cell.Offset(0, 2) вводился определенный текст? Я совсем VBA не знаю)
Изменено: MuTbKA - 25.06.2014 15:31:13
 
после строки
Код
.Value = Now  
добавьте строку
Код
cell.Offset(0, 2) = "определенный текст"
 
да, я так пробовал.
В примере, скачанном в http://www.planetaexcel.ru/techniques/6/44/, все работает. А в моем файле - нет.
К тому же мой файл и сюда не грузится ("При сохранении файла произошла ошибка.") Просто беда какая-то.  
 
Цитата
MuTbKA пишет:
К тому же мой файл и сюда не грузится
Как  это не грузится? А как же я тогда его смог скачать и открыть?
Проверил - всё в Вашем файле работает.
 
Я пытался загрузить два файла, а загрузился только один.
Удалось разобраться все-таки: я текст макроса вставлял в окно, озаглавленное "General". Оказалось, что в окне "Worksheet" изменений не произошло. Теперь, когда в обоих окнах тексты макросов совпадают, все заработало. Спасибо за помощь.
Изменено: MuTbKA - 26.06.2014 09:36:13
 
Игорь, подскажите а как должен выглядеть макрос чтоб при удалении данных он не вставлял опять дату в столбец. вроде написан макрос правильно но всё равно не работает
Код
  For Each cell In Target   
       If Not Intersect(cell, Range("c2:c100")) Is Nothing Then  
            With cell.Offset(0, -1)        
            If IsEmpty(Target) Then
     Target(1, 2) = Empty
Else
     With Target(1, 2)
        .Value = Now
        End With
End If
    Next cell
End Sub
Изменено: juk2000 - 27.11.2016 16:01:49
Страницы: 1
Читают тему
Наверх