У меня есть макрос для копирования всех используемых строк в одном листе 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() в подходящую колонку. – pnuts
Спасибо @ pnuts.' = Row() 'works Когда я даю его внутри цикла' For'. Мне было интересно, есть ли другой способ, не используя цикл 'For', для этого требуется слишком много времени, если есть 1000 строк. Просто любопытно. – Pheww
Проще, если вы можете положить = ROW() в исходное? Скажем, добавьте ColumnA и сделайте его частью того, что копируется. – pnuts