Excel VBA - 直到最后一行的日期

时间:2016-12-12 09:49:23

标签: excel vba date autofill

我目前正在努力实现以下目标:

A列中包含数据(例如,Orange,Apple,Mango),B列为空。我想实现一个框,在输入日期后,它将在一个范围内自动填充。

到目前为止,这是我的代码:

Public Sub DATERES()
Dim strUserResponse As String

strUserResponse = InputBox("Enter Date")

ActiveSheet.Range("B1:B100").Value = strUserResponse

End Sub

到目前为止一直很好,但是,我的问题是A中的数据有时会在1到500-600之间变化。因此,我想修改它,以便它首先检查A列,并且只在B列中输入日期直到最后一行,而不是给它一个更大的范围(如B1:B1000)。

感谢任何帮助和建议。

度过美好的一天!

2 个答案:

答案 0 :(得分:1)

Public Sub DATERES()
Dim strUserResponse As String
dim lastrow as long

strUserResponse = InputBox("Enter Date")

lastrow = Cells(Rows.Count,1).end(xlup).row 'the 1 will get the last row for column A. Change if needed


ActiveSheet.Range("B1:B"& lastrow).Value = strUserResponse

End Sub

使用引用的SheetsRange代替ActiveSheet更安全。

' modify "Sheet1" to your sheet's name
With Sheets("Sheet1")

    lastrow = .Cells(.Rows.count, 1).End(xlUp).Row ' the 1 will get the last row for column A. Change if needed

    .Range("B1:B" & lastrow).Value = strUserResponse
End With

答案 1 :(得分:1)

仅供参考,如果您希望ImputBox强制用户输入Date格式的值,请使用以下行:

Dim strUserResponse As Date

strUserResponse = Application.InputBox("Enter Date", , FormatDateTime(Date, vbShortDate), Type:=1)