2017-02-23 141 views
0

我正在創建一個將處理和格式化掃描(SCANfile#.xlm)保存爲.xlm文件的宏最終結果應該是處理過的格式化工作簿,該工作簿將被另存爲一個Excel文件。我正在創建一個工作簿中的宏,爲了討論的目的,我打電話給SCANMacro,目的是與當時打開的任何SCANfile#工作簿同時打開。從宏工作簿複製並粘貼到多個工作簿Excel

Sub Copy and Paste Data() 
'select cell on target workbook/worksheet 
Range("X1").Select 
' 
'select the data from the saved workbook that the macro runs from 
' 
Columns("SCAMNmacro.xlsm C:G").Select 
Selection.Copy 
' 
'Paste into SCANfile#.xlm.xml 
' 
Windows("SCANFILE01.xml").Activate 
Range("X1").Select 
ActiveSheet.Paste 

End Sub 

這隻要令人難以置信的是,我從我創造它,我就開通了SCANfile01.xml運行它的工作原理。只要我用另一個掃描文件打開啓用宏的工作簿,它就會出錯。

我該如何設置,以便宏在任何ScanSheet上工作?我嘗試使用Thisworkbook和Activeworkbook無濟於事。我不是一個程序員,所以大部分的這些都是在VBA編輯器裏面進行調整的。

回答

0

使用工作簿變量引用正確的工作簿:

Dim MacroSheet as Workbook 
Set MacroSheet = ThisWorkbook 

Dim ScanFile as Workbook 
Set ScanFile = Workbooks.Open("PATH TO YOUR FILE") 

然後你可以使用它像這樣:

MacroSheet.Columns("G").Copy 
+0

這工作。謝謝! – chaoslodge

相關問題