制作要求一天的Excel宏,然后将其插入下一个打开的单元格

Dun*_*ley 5 excel vba excel-vba inputbox

我正在尝试制作一个要求一天的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
Run Code Online (Sandbox Code Playgroud)

它将我输入的那一天放入单元格A1,无论其中是什么,然后选择行A中的下一个打开单元格.

我觉得答案很简单,但我无法理解!

小智 4

请参阅如何避免在 Excel VBA 宏中使用 Select

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
Run Code Online (Sandbox Code Playgroud)

您最初的问题是,在选择距 A 列中最后使用的单元格向下一行偏移的单元格后,您没有使用该选择来写入值;只是将其写入 A1 中。代码的最后一行可以更改为,Selection = AddName但最好尽可能避免使用 select 和 activate 。

您可能想调查一下Application.InputBox。Excel Application.InputBox 方法与标准VBA InputBox 函数略有不同,因为它允许指定返回类型。