【发布时间】:2016-09-17 21:55:26
【问题描述】:
也许我已经盯着这个太久了,但是我有一个可以在 Excel 中复制工作表的宏。我还想做的是将它包含在循环中(只是这个录制的宏中的 R1C1 公式):
Sub Macro4()
'
' Macro4 Macro
'
' Keyboard Shortcut: Ctrl+a
'
Sheets("<Null>").Select
ActiveSheet.Buttons.Add(541.5, 97.5, 95.25, 43.5).Select
ActiveSheet.Buttons.Add(541.5, 169.5, 94.5, 42.75).Select
Sheets("<Null>").Copy After:=Sheets(3)
ActiveCell.FormulaR1C1 = "='Dividing Walls Only'!RC[-2]"
Range("C4").Select
Sheets("<Null> (2)").Select
ActiveSheet.Buttons.Add(541.5, 97.5, 95.25, 43.5).Select
ActiveSheet.Buttons.Add(541.5, 169.5, 95.25, 42.75).Select
Sheets("<Null> (2)").Copy After:=Sheets(4)
Range("C3").Select
ActiveCell.FormulaR1C1 = "='Dividing Walls Only'!R[1]C[-2]"
Range("C4").Select
Sheets("<Null> (3)").Select
ActiveSheet.Buttons.Add(541.5, 97.5, 95.25, 43.5).Select
ActiveSheet.Buttons.Add(541.5, 169.5, 95.25, 42.75).Select
Sheets("<Null> (3)").Copy After:=Sheets(5)
Range("C3").Select
ActiveCell.FormulaR1C1 = "='Dividing Walls Only'!R[2]C[-2]"
Range("C4").Select
End Sub
显然,重复 180 次是愚蠢的。这是我已经拥有的 Copy Sheet 宏:
Sub CopySheet()
Call OptimizeCode_Begin
Dim x As Integer
x = InputBox("Enter number of times to copy active sheet")
For numtimes = 1 To x
'Loop by using x as the index number to make x number copies
ActiveWorkbook.ActiveSheet.Copy _
After:=ActiveWorkbook.Sheets(3)
'Put copies in front of Sheet3
'Might need to move the new sheets
Next
Call OptimizeCode_End
End Sub
我想做的是合并一个嵌套循环或自动推进每张工作表的 R1C1 公式,这样我就不必在所有工作表复制后输入我试图引用的单元格。任何帮助将不胜感激。
谢谢!
贾斯汀
【问题讨论】:
-
为什么不将第一位更改为工作表输入,然后在循环中调用它?不过,我可能不明白您要做什么。
-
@Justin Beachley 在下面看到我的答案,不确定如何为每个新复制的工作表推进单元格“C4”中的公式