如何从一个excel文件复制单元格值并将其粘贴到另一个excel文件?

时间:2013-04-14 13:24:47

标签: excel-vba vba excel

我想将单元格值从一个工作簿复制到另一个工作簿,但问题是单元格值来自工作簿的不同工作表。我怎样才能做到这一点?你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

这是您需要的骨骼,您可以通过循环遍历单元格范围,工作簿中的工作表等来做更多事情,但从根本上说,您需要在VBA中指定什么是目标工作簿,工作表和单元格范围,然后将.Value设置为等于另一个工作簿中的特定工作簿/工作表/单元格.Value

我在本例中使用了Workbook和Worksheet变量,如果需要或者需要应用于多个单元格,也可以使用单元格范围变量。

Sub TransferValues()
Dim wb1 as Workbook
Dim wb2 as Workbook
Dim ws1 as Worksheet
Dim ws2 as Worksheet



Set wb1 = Workbooks("First Workbook.xlsx")  '<modify as needed'
Set ws1 = wb1.Sheets("The sheet name")      '<modify as needed'

Set wb2 = Workbooks("Another Workbook.xlsx") '<modify as needed'
Set ws2 = wb2.Sheets("Another sheet name")   '<modify as needed'


'This line puts the value from wb1.ws1 in wb2.ws2, cells specified:
ws2.Range("A1").Value = ws1.Range("A1").Value


End Sub

答案 1 :(得分:2)

我猜你想要一个公式,而不是关于复制和粘贴的说明。

可以使用以下格式进行单元格引用。

=[Workbook Name]SheetName!CellAddress

示例,您打开了两个工作簿,Book1和Book2。

Book1,Sheet1,Cell A1 = =[Book2]Sheet1!A1

Book2,Sheet1,Cell A1 = Hello World

[Book1]Sheet1!A1的价值现在为&#34; Hello World&#34; (它将始终反映[Book2]Sheet1!A1中的值,只要书是开放的)

如果您确实需要实际值的副本,而不是对它的引用,则需要使用纯文本复制并粘贴使用上述公式当你完成后,使用copy + paste special(粘贴值)将公式转换为它们的值。

<强>更新

刚刚意识到它已标记为,因此您需要使用@ DavidZemens&#39;之类的内容。答案。

您也可以使用宏录制器执行此操作,但是像David建议的那样手动执行此操作会产生更好的代码,以便以后重新使用/修改。