2016-02-25 61 views
1

因此,我是VBA的新手,並試圖編寫一段代碼來提高效率。我試圖遍歷66個不同的工作表(名爲1,2,3等),並更改某些單元格的值以反映彙總表中列出的值。我希望實質上在工作簿中的每張工作表的迭代向下一行。我試圖記錄一個宏,並基於這個宏寫東西,但我的解決方案不起作用。任何幫助,將不勝感激!Excel VBA遍歷表單並更改單元格以反映彙總表

*更新後的代碼,但仍有一些不起作用。我認爲這可能是因爲我沒有正確選擇我想要進行更改的工作表?

**編輯2:代碼現在工作 - 我想我必須把第一張66張放在工作簿的開頭,宏試圖迭代通過其他受保護的工作表。謝謝您的幫助。

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 

回答

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

等等

不需要添加公式之前選擇單元格

編輯:儘量不要使用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 
+0

我已經做出了改變,但它仍然不工作 - 我是否必須改變我如何引用表格? –

+0

好吧,我發現我的第一個問題 - 我需要在我的for循環中取出第二個i =。 –

相關問題