制作一个需要一天的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