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

时间:2017-03-21 17:15:55

标签: 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

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

我觉得答案很简单,但我无法弄清楚!

2 个答案:

答案 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.InputBoxExcel 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