2013-04-14 161 views

回答

2

我猜你想要一個公式,而不是複製和粘貼指令。

單元格引用可以使用以下格式。

=[Workbook Name]SheetName!CellAddress

例如,你有兩個工作簿打開,第一冊和第二冊。

第一冊Sheet1的單元格A1 = =[Book2]Sheet1!A1

Book2的Sheet1的單元格A1 = Hello World

[Book1]Sheet1!A1值現在是 「Hello World」 的(它總是會反映在[Book2]Sheet1!A1值,提供了書打開)

如果你想實際值的副本,而不是對它的引用,您將需要只是使用普通的複製和粘貼使用上述公式並完成後,使用複製+粘貼特殊(粘貼值)將公式轉換爲其值。

更新

就意識到它被標記所以你需要使用像@DavidZemens的回答。

您也可以使用宏記錄器來做到這一點,但是像David所建議的那樣手動進行操作會產生更好的代碼,以便稍後重新使用/修改。

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...' 


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


End Sub 
相關問題