我正在尝试创建一个要求一天的Excel宏,然后将其插入下一个打开的单元格。这是我试图使用的代码。
Sub Button7_Click()
Dim AddName As String
AddName = InputBox("Date: Month/Year", "Add Date", "01/00")
Sheets("Sheet2").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Range("A1").Value = AddName
End Sub
将我输入的日期放入单元格A1,无论其中是什么,然后选择行A中的下一个打开单元格。
我觉得答案很简单,但我无法弄清楚!
答案 0 :(得分:4)
请参阅How to avoid using Select in Excel VBA macros。
Sub Button7_Click()
Dim AddName As String
AddName = InputBox("Date: Month/Year", "Add Date", "01/00")
With Worksheets("Sheet2")
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0) = AddName
End With
End Sub
您最初的问题是,在从A列中最后一个使用过的单元格中选择了一行的单元格偏移后,您没有使用该选择来写入该值;只是把它写进A1。代码的最后一行可以更改为Selection = AddName
,但最好避免在可能的情况下使用select和activate。
您可能需要查看Application.InputBox
。 Excel Application.InputBox Method与标准VBA InputBox function略有不同,因为它允许指定返回类型。
答案 1 :(得分:4)
这是另一个:
Sub Button7_Click()
Dim AddName As String
AddName = InputBox("Date: Month/Year", "Add Date", "01/00")
Sheets("Sheet2").Select
Range("A" & ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row + 1) = AddName
End Sub