將多個儲存格(不在範圍內)從一個工作簿複製到另一個工作簿

將多個儲存格(不在範圍內)從一個工作簿複製到另一個工作簿

我看到了你的文章“將多個單元格(不在範圍內)從一張紙複製到另一張紙”。我複製並貼上了 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 知識。如果不是為了寫整個例程,那麼至少自己做一些還算可以的修改。例如,您編寫的部分可以在循環中完成,而不是在 copypasta 中完成,因為列是連續的。

相關內容