2017-04-25 1500 views
2

我的下面的代碼完美運行,它只是將數據從一個工作簿複製並粘貼到另一個名爲「彙總工作簿」的工作簿。每個工作簿都對應一個測量站,在該測站中,我將所有工作簿中的相同單元格抽取到包含所有數據的「摘要工作簿」中。我想知道是否有辦法爲每個量具工作簿重複相同的代碼,所以我不必手動更改它?我知道我將不得不更改它正在複製的工作簿,或者我還必須手動更改它?爲多個工作表運行相同的VBA宏代碼

附加信息:

,我複製被稱爲「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 

回答

0

除非我弄錯只有你的代碼的端部似乎與你的問題。在這種情況下,您只需要在每個參考中更改工作簿名稱,如下所示。

[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循環的計數器來減少重新排序,但是我們需要更多地瞭解你的工作簿命名約定來進一步協助。

+0

我在想這個部分是一樣的,但是我不得不改變這個列。所以對於這個量具,所有的都進入了E列,但是對於下一個量具站,它必須進入F.有沒有更簡單的方法可以自動進入下一列? –

+0

@DaisyGuitron看看[這個](http://stackoverflow.com/q/13985060/470014)的問題。 – Caltor

相關問題