Excel 中用于复制工作表的宏(通过引用每个单元格)
Macro in Excel to Copy a Worksheet (by referencing every cell)
我找到了很多关于在 VBA 中复制作品 sheet 或用值替换公式等的示例。
我想做的是复制整个作品sheet,但在新作品sheet上,每个单元格都指向其原始内容。
所以在新作品sheet的单元格A1中,它只会有公式“='Sheet1'!A1”
有没有简单的方法来做到这一点?
谢谢
P.S。我需要它是一个宏,因为我需要能够在特定的 sheet 上 运行 它,将所有单元格从那个 sheet 复制到一个新单元格中,而不是总是从"Sheet1"
您几乎给出了问题的答案:
sheet2.range("A1:F50").formula = ='Sheet1'!A1"
如果你想避免剪贴板,我建议 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
我找到了很多关于在 VBA 中复制作品 sheet 或用值替换公式等的示例。 我想做的是复制整个作品sheet,但在新作品sheet上,每个单元格都指向其原始内容。 所以在新作品sheet的单元格A1中,它只会有公式“='Sheet1'!A1”
有没有简单的方法来做到这一点? 谢谢
P.S。我需要它是一个宏,因为我需要能够在特定的 sheet 上 运行 它,将所有单元格从那个 sheet 复制到一个新单元格中,而不是总是从"Sheet1"
您几乎给出了问题的答案:
sheet2.range("A1:F50").formula = ='Sheet1'!A1"
如果你想避免剪贴板,我建议 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