|          
 Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數(shù)據(jù)處理軟件。 在文件夾中所有文件上運行宏,或者在Excel工作簿中所有工作表上運行宏,這可能是一種非常好的Excel自動化方案。例如處理類似的數(shù)據(jù)工作簿文件并想要提取數(shù)據(jù)或轉(zhuǎn)換該工作簿。下面給出了適用這種情況的一些VBA程序,這些程序代碼整理自analystcave.com,供有興趣的朋友參考。 在文件夾內(nèi)所有文件中運行宏 代碼如下: ‘本程序來自于analystcave.comSub RunOnAllFilesInFolder()Dim folderName As StringDim eApp As Excel.ApplicationDim fileName As StringDim wb As WorkbookDim ws As WorksheetDim currWs As WorksheetDim currWb As WorkbookDim fDialog As ObjectSet fDialog =Application.FileDialog(msoFileDialogFolderPicker)Set currWb =ActiveWorkbookSet currWs = ActiveSheet‘選擇存儲所有文件的文件夾fDialog.Title = “選擇文件夾”fDialog.InitialFileName =currWb.PathIf fDialog.Show = -1 ThenfolderName =fDialog.SelectedItems(1)End If‘創(chuàng)建一個單獨的不可見的Excel處理進程Set eApp = NewExcel.ApplicationeApp.Visible = False‘搜索文件夾中的所有文件[使用你的格式例如*.xlsx來代替*.*]fileName = Dir(folderName& “\*.*”)Do While fileName<> “”‘更新狀態(tài)欄來指示進度Application.StatusBar= “正在處理” & folderName & “\” & fileNameSet wb =eApp.Workbooks.Open(folderName & “\” & fileName)‘…‘在這里放置你的代碼‘…wb.CloseSaveChanges:=False ‘關(guān)閉打開的工作簿Debug.Print “已處理 “& folderName & “\” & fileNamefileName = Dir()LoopeApp.QuitSet eApp = Nothing‘清除狀態(tài)欄并通知宏已完成Application.StatusBar =””MsgBox “在所有工作簿中都完成了宏執(zhí)行”End Sub
 這段代碼完成下列操作: 1.在當(dāng)前工作簿路徑中打開“選擇文件”對話框,要求選擇一個用于存儲所有文件的文件夾。 2.打開一個單獨的Excel進程(應(yīng)用程序),然后逐個打開每個文件。 3.使用要在每個打開的工作簿上運行的代碼替換“在這里放置你的代碼”部分。 4.每個打開的工作簿在關(guān)閉時不會保存所作的修改。 在子文件夾內(nèi)所有文件中運行宏 當(dāng)想在文件夾中所有Excel文件上運行宏時,其中的一種情況是遍歷所有子文件夾來運行宏。下面的內(nèi)容與前述內(nèi)容幾乎相同,但是請注意聲明了一個全局變量fileCollection,這將首先用于存儲子文件夾中標(biāo)識的所有文件,并且僅用于在此VBA集合中存儲的文件上運行所有宏之后。 
 Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。 
 |