VBA Excel – автоматическое заполнение даты в нескольких столбцах, если я заполнил столбец A

Это мой первый раз, когда я пишу код, и я пытаюсь написать код, который помогает мне заполнять столбцы B , C и D. Автоматически это произойдет, когда я сам заполню столбец A.

это картина этого листа, над которым я сейчас работаю. Рабочий лист. Объясняя, что я хочу.

Конечный результат должен быть таким, как этот рисунок

я пытаюсь Google код, и я нашел код, но он не работает вообще

Это первый код

Private Sub Worksheet_Change(ByVal Target As Range) Dim A As Range, B As Range, Inte As Range, r As Range Set A = Range("A:A") Set Inte = Intersect(A, Target) If Inte Is Nothing Then Exit Sub Application.EnableEvents = False For Each r In Inte r.Offset(0, 1).Value = Date Next r Application.EnableEvents = True End Sub 

также я пытаюсь написать другой код, который может помочь мне заполнить столбцы B и C на основе приведенных выше результатов кода, но все же не работает.

Это код, написанный мной

 Private Sub Worksheet_Change1(ByVal Target As Range) Dim i As Integer For i = 6 To 1000 If Cells(i, "A").Value <> "" And Cells(i, "B").Value <> "" Then Cells(i, "C").Value = Date Cells(i, "C").NumberFormat = "mmm" Cells(i, "D").Value = Date Cells(i, "D").NumberFormat = "yyyy" End If Next Range("C:C").EntireColumn.AutoFit Range("D:D").EntireColumn.AutoFit End Sub 

кто-нибудь может помочь с этим?

Макрос события Worksheet_Change запускается, когда одна или несколько ячеек на листе меняют значение. Если вы пишете значения на листе в процедуре Worksheet_Change (например, с датами) без предварительного отключения обработки событий, запускается другое событие Worksheet_Change, и процедура пытается запустить поверх себя. Всегда отключайте обработку событий с помощью Application.EnableEvents = False перед записью значений на рабочий лист.

 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:B")) Is Nothing Then On Error GoTo bm_Safe_Exit Application.EnableEvents = False Dim rw As Long, rng As Range For Each rng In Intersect(Target, Range("A:B")) If Application.CountA(Cells(rng.Row, "A").Resize(1, 2)) = 2 Then Cells(rng.Row, "C").Resize(1, 2).Value = Date Cells(rng.Row, "C").NumberFormat = "mmmm" Cells(rng.Row, "D").NumberFormat = "yyyy" End If Next rng Range("C:C").EntireColumn.AutoFit Range("D:D").EntireColumn.AutoFit End If bm_Safe_Exit: If CBool(Val(Err.Number)) Then _ Debug.Print Err.Number & ": " & Err.Description Application.EnableEvents = True End Sub 

Не забудьте снова включить события с Application.EnableEvents = True перед тем, как выйти из процедуры Worksheet_Change или изменения будущего значения, не вызовет процедуру Worksheet_Change еще раз.

кстати, правильный формат номера за октябрь составляет мммм , а не ммм . Первый дает полное название месяца; последнее – только аббревиатура трех букв (например, октябрь ).

  • VBA Excel - требуется объект компиляции
  • Дата записи XlsxWriter как номер
  • Использование системной даты и даты ввода пользователя в Windows VS Mac
  • Excel VBA Удаление строк по дате
  • Объединение ежедневных данных в ежемесячные данные в Excel с использованием Python
  • Что делать, когда вы получаете номер, например 40182 или 15368, когда вы ожидаете дату?
  • Преобразовать временную метку matlab в java.util.Date
  • Как включить всплывающее календарное изображение в существующую форму пользователя
  • Могу ли я изменить формат даты с 20140129 по 01/29/2014, используя VBA?
  • org.apache.poi создать книгу excel с ячейками даты
  • Java: отличное решение для преобразования даты csv с Apache Poi
  • Interesting Posts

    Excel & VBA: «Если значение меньше 1», условие запускается значением, которое равно 1

    VBA, вставляя данные в большие куски

    Функция Excel – преобразование юникода в ascii

    Как открыть CSV в Excel с помощью Powershell при поставке разделителя списка

    Как выполнить поиск столбца и вернуть значение в следующем столбце с определенным значением

    Оператор Max if

    Сравните данные в двух листах одного и того же файла и выделите ячейку

    Как получить количество видимых строк после фильтра в Excel VBA

    названный диапазон столбцов vba

    Преобразование MATLAB: CELL to DOUBLE; Но цифры меняются

    Как я могу получить значения, разделенные запятыми, из файла Excel в отдельные строки, которые, в свою очередь, будут вставлены в базу данных?

    Переместить ячейки вниз, поскольку данные были превышены в Excel

    Импорт данных из таблицы Excel в таблицу SQL Server

    Импорт Excel в SAP Business One

    Функция Vlookup с двумя возможными значениями поиска

    Давайте будем гением компьютера.