我想将单元格值从一个工作簿复制到另一个工作簿,但问题是单元格值来自工作簿的不同工作表。我怎样才能做到这一点?你能帮我解决这个问题吗?
答案 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(粘贴值)将公式转换为它们的值。
<强>更新强>
刚刚意识到它已标记为excel-vba,因此您需要使用@ DavidZemens&#39;之类的内容。答案。
您也可以使用宏录制器执行此操作,但是像David建议的那样手动执行此操作会产生更好的代码,以便以后重新使用/修改。