2017-04-25 1470 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

相关问题