2012-03-16 37 views
-1

我有一個有點複雜的宏觀情況,所以我會盡我所能來佈置它。它涉及到3個不同的工作簿文件之間相互作用:在另一個工作簿中調用宏

  • 第一含通用數據分析和格式化宏
  • 含有的參數,格式信息,和更具體的宏第二分析那種數據的
  • 第三文件包含實際數據本身將被格式化

我設想的工作流程是這樣的:通用片被裝起來,和一個數據和參數文件被選擇,和通用宏運行應用一些基本格式。然後,將從參數文件運行具有特定名稱和參數列表(例如Sub SpecialFormatting(wbk As Workbook))的公共宏,以便對不屬於通用表單的數據文件執行更具體的格式設置。

我將如何指定運行宏的工作簿?我想我讀了一些關於Application.Run的地方,但我認爲這隻能通過參數ByVal。我需要通過工作簿ByRef才能編輯它。

我想對於這種特定的情況,我可以傳遞一個字符串與數據手冊的名稱,但有沒有另一種選擇?

回答

0

不是Excel和VB的最大粉絲,過去被迫與之合作。我不得不寫一些我寫的Excel宏來自動化我沒有興趣手動執行的東西。我想通了這一點不是很久以前的工作簿導出到單獨的文件:

Set wbSource = ActiveWorkbook 

wrkshtYear = Mid(wbSource.FullName, Len(wbSource.FullName) - 7, 4) 

For Each sht In wbSource.Worksheets 
    If sht.Name <> "Totals" Then 
     newFileName = Replace((strSavePath & "\" & UserNameWindows() & sht.Name & wrkshtYear), " ", "") 
     If isFileExist(newFileName & ".xlsx") = False Then 
      sht.Copy 
      Set wbDest = ActiveWorkbook 
      wbDest.SaveAs newFileName 
      wbDest.Close 'Remove this if you don't want each book closed after saving. 
     End If 
    End If 
Next 

也許這將幫助你開始。祝你好運!

相關問題