Копировать несколько ячеек (не входящих в диапазон) из одной книги в другую

Копировать несколько ячеек (не входящих в диапазон) из одной книги в другую

Я наткнулся на вашу статью.«копировать несколько ячеек (не входящих в диапазон) с одного листа на другой лист». Я скопировал макрос VBA и вставил его, сослался на ячейки в скрытой строке и назначил кнопку для выполнения. он отлично работает с одного листа на другой в той же рабочей книге. Моя проблема в том, что мне нужно скопировать данные из одного листа рабочей книги sheet1 (счет-фактура) в другой лист рабочей книги sheet1 (дебиторская задолженность с истекшим сроком годности). Можно ли настроить существующий код VBA, чтобы сделать это?

Вот изменения, которые я внес в макрос VBA, чтобы он соответствовал моим диапазонам.

wks1.Cells(use_row,1) = wks.cells (50,1)
wks1.Cells(use_row,2) = wks.cells (50,2)
wks1.Cells(use_row,3) = wks.cells (50,3)
wks1.Cells(use_row,4) = wks.cells (50,4)
wks1.Cells(use_row,5) = wks.cells (50,5)
wks1.Cells(use_row,6) = wks.cells (50,6)

решение1

Конечно. Все, что нужно сделать, это создать ссылку (переменную в подпрограмме) на другую рабочую книгу и выбрать принимающий лист на этом конце.

Это достигается здесь путем замены первых нескольких строк, на которых основан остальной код (с последующими вашими собственными изменениями):

Dim wkb As Workbook,wkb2 as workbook
Dim wks as worksheet, wks1 As Worksheet
Set wkb = ThisWorkbook ' Or workbooks("SourceWorkbook.xlsm") if it's saved.
set wkb2 = Workbooks("OtherWorkbook.xlsx")
Set wks = wkb.Sheets("Sheet1") ' Name references are a little clearer.
Set wks1 = wkb2.Sheets("Sheet1")

Вы также можете добавить еще одну строку «set wkb2 = nothing» в конце, но это скорее мера предосторожности, чем реальный результат.

В любом случае, я бы посоветовал вам немного почитать о базовом VBA, если вам нужны относительно сложные функции. Если не для написания целых процедур, то хотя бы для самостоятельного внесения приемлемых изменений. Например, тот кусок, который вы написали, можно было бы сделать в цикле вместо копипасты, поскольку столбцы последовательны.

Связанный контент