У меня два листа. Первый лист получает данные из таблицы SQL, поэтому диапазон всегда изменяется в зависимости от размера данных. Я определил, какой диапазон для ячейки A2: endxldown
На листе 2 у меня есть форма даты, котораяпредлагает пользователю ввести дату, когда пользователь вводит дату, например, сегодня Excel должен ввести эту дату в листе 2, например, лист 1 имеет диапазон данных A2: A20, поэтому лист 2 будет вводить сегодняшние данные в диапазоне A2: A20
Это дает мне диапазон в листе 1;
Sub findlastrow()
Dim LastRow As Long
With Worksheets("Data").Activate
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
Range("A1").Resize(LastRow).Select
MsgBox "The data range address is " & Selection.Address(0, 0) & ".", _
vbInformation, "Data-Contatining range address:"
End With
End Sub
Ответ = A2: A251
Предполагается, что приведенный ниже код вводит дату в диапазон A2: A251
Sub CreateJnl()
Dim dte As String
Dim LastRow As Long
Dim rng As Range
Dim ws As Worksheet
Application.Calculation = xlManual
Application.ScreenUpdating = False
Sheets("Journal").Cells.ClearContents
Set ws = ThisWorkbook.Sheets("Data")
With ws
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
Range("A2").Resize(LastRow).Select
MsgBox "The data range address is " & Selection.Address(0, 0) & ".", _
vbInformation, "Data-Contatining range address:"
Else
LastRow = 1
End If
If Not LastRow < 3 Then
Set rng = .Range("A2:A" & LastRow)
Debug.Print rng.Address
Else
MsgBox "No Data found beyond A3"
End If
End With
dte = InputBox("Please Enter Date: ", Default:=Format(Now, "dd/mm/yyyy"))
Sheets("Journal").rng.Value = dte
Application.ScreenUpdating = True
End Sub