从 Excel 表中复制数据并将其粘贴到另一个表中

从 Excel 表中复制数据并将其粘贴到另一个表中

我正在尝试从 Excel 的一个工作簿中选择一些数据,将其复制并粘贴到另一个工作簿中。但是当我在 VBA 中运行代码时,它什么也没做。

代码如下:

Sub foo3()
Dim x As Workbook
Dim y As Workbook
Dim vals As Variant

'## Open both workbooks first:
Set x = Workbooks.Open("<Path of the origin\Archive.xslm>")
Set y = Workbooks.Open("<Destination Path\Archive1.xslm>")

'Store the value in a variable:
vals = x.Sheets("Plan1").Range("A1").Value

'Use the variable to assign a value to the other file/sheet:
y.Sheets("Plan1").Range("A1").Value = vals

'Close x:
x.Close
y.Close

End Sub

有人能帮我找到解决方案吗?谢谢!

答案1

替换掉你的代码:

设置 x = Workbooks.Open(“”)

直接从目的地书的打开单元格中:

='C:\Users\youtheuser\Desktop\[bookC.xlsx]Sheet1'!$A$1


或“动态”

='C:\Users\youtheuser\Desktop\[bookC.xlsx]Sheet1'!A1

这里的所有都是它的!

答案2

Excel 具有内置宏录制功能,可以根据您的操作生成 VBA 代码。调​​试此问题的最佳方法是录制一个宏,其中“手动”执行您要在 VBA 中编写的脚本,然后查看生成的代码。

始终确保录制的宏确实执行您正在做的事情 - 它不是 100% 准确的。

如果运行它生成的宏可以达到您想要的效果,您可以在创建宏的工作簿中的 VBA 编辑器中查看它的代码。请注意,它不必是您代码摘录中感兴趣的两个工作簿之一,它可以是另一个与它们无关的工作表。

根据自动生成的代码的编写方式,您应该能够看到自己代码中的问题。如果没有,您可以直接使用它(将其移到函数中,而不是宏中)。

你可以找到很多关于录制宏的指南。这里有一个简单指南适用于 Excel 2013。

相关内容