Excel VBA遍历表单并更改单元格以反映汇总表

所以我是VBA的新手,并试图写一段代码来提高效率。 我正在尝试遍历66个不同的工作表(称为1,2,3等),并更改某些单元格的值以反映汇总表中列出的值。 我想实质上迭代在工作簿中的每个工作表的汇总表中的一行。 我试图logging一个macros,并写了一些东西,但我的解决scheme不起作用。 任何帮助,将不胜感激!

*更新的代码,但仍然不能正常工作。 我想这可能是因为我没有正确select我想要进行更改的工作表?

**编辑2:代码现在工作 – 我想我必须把第一个66张工作簿的开始,macros正试图迭代通过其他受保护的工作表。 谢谢您的帮助。

Sub Macro6() Dim WS_Count As Integer Dim i As Integer 'Set WS_Count to the number of sheets with CPT data WS_Count = 66 For i = 1 To WS_Count Sheets(i).Activate Sheets(i).Select Range("A2").FormulaR1C1 = "='Data Input'!R[" & (17 + i) & "]C[1]" Range("F6").FormulaR1C1 = "='Data Input'!R[" & (14 + i) & "]C[4]" Range("H6").FormulaR1C1 = "='Data Input'!R[" & (14 + i) & "]C[3]" Range("I6").FormulaR1C1 = "='Data Input'!R[" & (14 + i) & "]C[3]" Range("L6").FormulaR1C1 = "='Data Input'!R[" & (14 + i) & "]C[8]" Range("M6").FormulaR1C1 = "='Data Input'!R[" & (14 + i) & "]C[9]" Next End Sub 

 Range("A2").FormulaR1C1 = "='Data Input'!R["& (17+i) & "]C[1]" 

等等。

在添加公式之前不需要select单元格

编辑:尝试不使用RC符号(你可能需要调整一些数字)

 Sub Macro6() Const WS_Count As Long = 66 'number of sheets with CPT data Dim i As Long For i = 1 To WS_Count With Sheets(i) .Range("A2").Formula = "='Data Input'!A" & (17 + i) .Range("F6").Formula = "='Data Input'!D" & (14 + i) .Range("H6").Formula = "='Data Input'!C" & (14 + i) .Range("I6").Formula = "='Data Input'!C" & (14 + i) .Range("L6").Formula = "='Data Input'!H" & (14 + i) .Range("M6").Formula = "='Data Input'!I" & (14 + i) End With Next End Sub