我看到了你的文章“将多个单元格(不在范围内)从一张表复制到另一张表”。我复制并粘贴了 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。如果不是为了编写整个例程,那么至少自己进行一些可行的修改。例如,您编写的那部分可以在循环中完成,而不是复制粘贴,因为列是连续的。