У меня есть макрос для копирования всех используемых строк с одного листа 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, начиная с того места, где он остановился.
=Row()
работает, когда я даю его внутри циклаFor
. Мне было интересно, есть ли другой способ без использования циклаFor
, потому что это занимает слишком много времени, если есть 1000 строк. Просто любопытно. - person Pheww   schedule 11.09.2013=ROW()
в исходный файл. Я думал, что он скопирует только значение, а не формулу. - person Pheww   schedule 11.09.2013