我有一个宏可以将一个Excel工作表(ExcelA)中的所有已用行复制到另一个(ExcelB):
Sub CopyFromOneXL()
Dim myBook As Workbook, newBook As Workbook
Set myBook = ThisWorkbook
Set lRowMyBook = Range("A1").SpecialCells(xlCellTypeLastCell)
Set newBook = Workbooks.Open("C:\Users\user\Desktop\EXCEL\ExcelB.xlsx")
newBook.Activate
Set lRowNewBook = Sheets("Sheet1").Range("A1").SpecialCells(xlCellTypeLastCell)
lastRowNewBook = lRowNewBook.Row
lastRowMyBook = lRowMyBook.Row
lastRowNewBook = lastRowNewBook + 1
With newBook
myBook.Sheets("Sheet1").Rows("1:" & lastRowMyBook).Copy .Sheets("Sheet1").Rows(lastRowNewBook)
.Close savechanges:=True
End With
End Sub
ExcelB已经使用了十行(1-10中的序列号),我正在使用上面的宏添加另外三行数据(在ExcelA中)。有没有办法为ExcelB中的三个新添加的行添加序列号,从11开始?
两张表中的行数可能会有所不同,但最终我想从ExcelB停止的位置向ExcelB添加序列号。
答案 0 :(得分:0)
当我添加以下代码时,它有效。
With newBook
myBook.Sheets("Sheet1").Rows("1:" & lastRowMyBook).Copy .Sheets("Sheet1").Rows(lastRowNewBook)
Set newLRowNewBook = Sheets("Sheet1").Range("A1").SpecialCells(xlCellTypeLastCell)
newLastRowNB = newLRowNewBook.Row
'MsgBox newLastRowNB
For i = lastRowNewBook To newLastRowNB
Cells(i, 1).Formula = "=Row()"
Next
.Close savechanges:=True
End With
虽然如果有1000行,宏需要一些时间才能运行。只是想知道是否有任何其他方法可以实现这一点而不使用For
循环。
感谢。
答案 1 :(得分:0)
OP希望索引增量条目,方便地,索引号与使用不同工作表中的代码复制的条目的行号匹配。不是在代码中添加带有循环的索引来复制增量,而是将一个公式(=ROW()
)添加到源表中,然后使用现有代码自动复制。