[英]Excel VBA iterate through sheets and change cells to reflect summary sheet
因此,我剛接觸VBA,並嘗試編寫一段代碼來提高效率。 我試圖遍歷66個不同的工作表(命名為1、2、3等),並更改某些單元格的值以反映摘要表中列出的值。 我實質上想對工作簿中的每個工作表在摘要工作表中逐行向下進行迭代。 我試圖記錄一個宏並在此基礎上編寫一些東西,但是我的解決方案不起作用。 任何幫助,將不勝感激!
*更新了代碼,但仍然無法正常工作。 我認為可能是因為我沒有正確選擇要進行更改的工作表?
** Edit2:該代碼現在可以正常工作-我想我必須將前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
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.