2016-09-19 65 views
-3

我發現了很多用於複製VBA中的工作表或使用值替換公式的示例。 我想要複製整個工作表,但是新的工作表中,每個單元都指向它的原始。 因此,在新工作表的單元格A1中,它只需要公式「='Sheet1'!A1」在Excel中複製工作表中的宏(通過引用每個單元格)

是否有一種簡單的方法可以執行此操作? 謝謝

P.S.我需要它是一個宏,因爲我需要能夠在特定的工作表上運行它,將該表中的所有單元格複製到新的單元格中,而不是始終從「Sheet1」

+4

是,複製所需的細胞,然後粘貼特殊。有一個選項可以粘貼鏈接。 –

+0

看到這裏:https://msdn.microsoft.com/en-us/library/office/ff835858.aspx?f=255&MSPPError=-2147217396 –

+0

嗨斯科特,謝謝,這可能是我需要的。大概有一種方法可以通過VBA做到這一點? – Dave

回答

1

如果你想避免可能我建議R1C1公式格式剪貼板:

Sub fillsheet() 
Dim ows As Worksheet 
Dim tws As Worksheet 
Dim rng As Range 

Set ows = Worksheets("Sheet1") 
Set tws = Worksheets("Sheet2") 

Set rng = ows.UsedRange 

tws.Range(rng.Address()).FormulaR1C1 = "='" & ows.Name & "'!RC" 
End Sub 
+0

再次感謝斯科特。我選擇了這個,因爲我需要爲工作表使用變量,但是@ iDevlop的解決方案非常好,也很簡單 – Dave

1

您幾乎給出了答案你的問題:

sheet2.range("A1:F50").formula = ='Sheet1'!A1" 
+0

哇,很簡單!有沒有辦法阻止它把所有以前的空白單元格中的「0」? – Dave

+0

@ScottCraner公式**將**改變,因爲「A1」是一個相對地址。 –

+0

所以它。我的壞 –

相關問題