Excel VBA用空列A填充第一个空白行与第一行

我有这个代码来select第一个空白行填充,

Set myData = Workbooks.Open("C:\Users\Charles\Desktop\WFACS - Work Order System\Work Order Management System.xlsm") Worksheets("Sheet5").Select Worksheets("Sheet5").Range("A3").Select RowCount = Worksheets("Sheet5").Range("A3").CurrentRegion.Rows.Count With Worksheets("Sheet5").Range("A2") .Offset(RowCount, 0) = TaskType .Offset(RowCount, 1) = TimeSensitive .Offset(RowCount, 2) = TimeSensitiveDate .Offset(RowCount, 3) = TodaysDate .Offset(RowCount, 4) = Address .Offset(RowCount, 5) = Location .Offset(RowCount, 6) = Department .Offset(RowCount, 7) = ContactName .Offset(RowCount, 8) = ContactEmail .Offset(RowCount, 9) = Description 

我想改变它来填充列A空的第一行使用此代码:

 Range("A1").End(xlDown).Offset(1, 0).Select 

但是每次我把它放到代码中,我都会遇到运行时错误(9):下标超出范围。

有人可以帮我把这两个放在一起,我知道这里有其他线程谈论这个问题,但没有任何帮助我解决这个特定的错误。

假设您的工作表在单元格A1和A2中有某些内容,那么下面的代码应该可以工作:

 Set myData = Workbooks.Open("C:\Users\Charles\Desktop\WFACS - Work Order System\Work Order Management System.xlsm") With myData.Worksheets("Sheet5").Range("A1").End(xlDown).Offset(1, 0).EntireRow .Cells(1, "A").Value = TaskType .Cells(1, "B").Value = TimeSensitive .Cells(1, "C").Value = TimeSensitiveDate .Cells(1, "D").Value = TodaysDate .Cells(1, "E").Value = Address .Cells(1, "F").Value = Location .Cells(1, "G").Value = Department .Cells(1, "H").Value = ContactName .Cells(1, "I").Value = ContactEmail .Cells(1, "J").Value = Description End With 

这避免了任何Select语句。

如果在单元格A2没有任何数据,那么最好使用:

 With myData.Worksheets("Sheet5").Cells(myData.Worksheets("Sheet5").Rows.Count, "A").End(xlUp).Offset(1, 0).EntireRow 

从底部起作用并向上search以find最后使用的单元。 (但不处理最后一个非空单元格上方有空单元格的情况。)


编辑(对于“高级用户”):

ASH在评论中指出,这可以通过以下方式来完成:

 Set myData = Workbooks.Open("C:\Users\Charles\Desktop\WFACS - Work Order System\Work Order Management System.xlsm") myData.Worksheets("Sheet5").Range("A1").End(xlDown).Offset(1, 0).Resize(, 10).Value = Array( _ TaskType, _ TimeSensitive, _ TimeSensitiveDate, _ TodaysDate, _ Address, _ Location, _ Department, _ ContactName, _ ContactEmail, _ Description)