制作一个需要一天的Excelmacros,然后将其插入到下一个打开的单元格中

我正在尝试制作一个要求一天的Excelmacros,然后将其插入到下一个打开的单元格中。 这是我正在尝试使用的代码。

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 

它将我input的那一天放到单元格A1中,不pipe它在哪里,然后selectA行中的下一个开放单元格。

我觉得答案很简单,但是我不明白!

请参阅如何避免在Excel VBAmacros中使用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 

你原来的问题是,在A列的最后一个使用的单元格中select了一行单元格偏移量之后,你没有使用该select来写入该值; 只是把它写入A1而已。 您的代码的最后一行可以更改为Selection = AddName但最好避免使用select并尽可能激活。

你可能想看看Application.InputBox 。 Excel Application.InputBox方法与标准的VBA InputBox函数略有不同,因为它允许指定返回types。

这是另一个:

 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