簡體   English   中英

為多個工作表運行相同的VBA宏代碼

[英]Run Same VBA Macro Code for more than one Worksheet

我下面的代碼運行完美,它只是將數據從一個工作簿復制並粘貼到另一個稱為“摘要工作簿”的工作簿。 每個工作簿都對應一個量具站,在該站中,我將從所有工作簿中提取相同的單元格到包含所有數據的“摘要工作簿”中。 我想知道是否有一種方法可以為每個量具工作簿重復相同的代碼,所以我不必手動更改它? 我知道我也必須更改要從中復制它的工作簿,還是我也必須手動更改它?

附加信息:

我正在復制的工作簿稱為“ run_10296500.xlsm”,在該工作簿中,我將取出工作表中的數據,稱為“儀表板”。 “摘要工作簿”是活動工作簿,並且sheet1在此工作簿中。

我的代碼如下:

Sub Hungry4Gages()

Dim x As Workbook

Dim y As Workbook

'## Open both workbooks first:

Set y = ActiveWorkbook


 Dim LastRow As Long

    For i = 1 To 50
        If Cells(i, 1).Value = "Grand Total" Then
            Line = i
            Range("A" & i + 1 & ":CS50").Select
            Selection.Clear
            Exit For
        End If
    Next

'FALL

[Class1!E6].Formula = "='C:\Users\dguitron\Documents\Belize and Sam Project\Class 1\[run_10296500.xlsm]dashboard'!E17"
[Class1!E6] = [Class1!E6].Value        

[Class1!E7].Formula = "='C:\Users\dguitron\Documents\Belize and Sam Project\Class 1\[run_10296500.xlsm]dashboard'!E18"
[Class1!E7] = [Class1!E7].Value         

[Class1!E8].Formula = "='C:\Users\dguitron\Documents\Belize and Sam Project\Class 1\[run_10296500.xlsm]dashboard'!E19"
[Class1!E8] = [Class1!E8].Value         


End Sub

除非我沒有記錯,否則您代碼的最后部分似乎只與您的問題有關。 在這種情況下,您只需更改每個引用中的工作簿名稱,如下所示。

[Class1!E6].Formula = "='C:\Users\dguitron\Documents\Belize and Sam Project\Class 1\[run_10296500.xlsm]dashboard'!E17"
[Class1!E6] = [Class1!E6].Value        

[Class1!E7].Formula = "='C:\Users\dguitron\Documents\Belize and Sam Project\Class 1\[run_10296501.xlsm]dashboard'!E17"
[Class1!E7] = [Class1!E7].Value         

[Class1!E8].Formula = "='C:\Users\dguitron\Documents\Belize and Sam Project\Class 1\[run_10296502.xlsm]dashboard'!E17"
[Class1!E8] = [Class1!E8].Value         

顯然,我不知道其他工作簿的名稱,因此我只增加了最后一位數字。 如果您想讓它更流暢一些,那么您可以創建一個工作簿名稱數組,或者使用帶有For循環的計數器來減少重新排列的位置,但是我們需要更多地了解您的工作簿命名約定,以提供進一步的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM