分享成果,隨喜正能量】萬事萬物皆有宿命,因果有輪回,善惡終有報。為人善良,會得到善果;為人惡毒,會得到惡果。人世間的因果報應,只是早晚的事。。
我的教程一共九套及VBA漢英手冊一部,分為初級、中級、高級三大部分。是對VBA的系統講解,從簡單的入門,到數據庫,到字典,到高級的網抓及類的應用。大家在學習的過程中可能會存在困惑,這么多知識點該如何組織成自己的程序呢?VBA可否能組織一個大型的程序呢?如何讓VBA形成一個工具,拿來就用呢?在我的教程完結后,我陸續推出這類技術工具資料,這類工具整合了若干多的VBA知識點,讓大家感受到VBA之強大。工具資料共兩個系列,一個是YZ系列,一個是NZ系列。今日給大家介紹的是NZ系列工具:NZ10:VBA壓縮與解壓工具
這個應用工具將展現給大家如何利用VBA代碼將文件壓縮與解壓。由于VBA是一種寄生語言,這個壓縮工具,使用默認的 Windows zip 解壓縮文件程序。工具共提供兩個程序文件,一個用于壓縮VBA-ZIP.XLSM文件,一個用于解壓VBA-UnZIP.XLSM文件。在工具中,我同時提供給大家一個用于測試的TestFolder文件夾,這個文件夾中有各種類型的隨意文件。
工具是開放源碼的(注意VBE的打開密碼是123456789,但強烈建議您不要輕易打開代碼窗口,即使打開也要留有備份)。
這個工具的相關內容用手工也可以完成,但我們可以利用VBA更加簡單,同時代碼可以加入其它代碼中,完成更復雜的工作。
對于文件的壓縮我提供了四個小項工具,如下圖:
這四個小項分別是:1 :壓縮所選項的一個或多個文件 2: 壓縮所選擇的文件夾 3:壓縮所設置的固定文件夾 4: 壓縮當前工作簿。
下面就各個小項逐一說明。
我們點擊相應的壓縮按鈕:
這個時候會彈出如下的對話框:
在這個界面我們可以選擇將要壓縮的文件:
我們選擇測試文件夾下面的兩個文件,點擊“打開”按鈕。
文件壓縮 完成后,會有下面的提示:
回到當前文件,我們會看到相應的壓縮文件:
第二個壓縮選項是壓縮所選擇的文件夾,我們點擊相應的壓縮按鈕:
步驟和第一個壓縮選項的步驟類似,當我們選擇給出的測試文件夾后,最后可以得到下面的壓縮文件:
第三個壓縮文件選項是將要壓縮的文件夾名稱放在了程序中,這樣可以省略選擇的過程,當然,這項操作要求文件夾名稱及位置必須是固定的。在這個工具中,程序中設定的是測試文件夾。
點擊壓縮按鈕后,可以得到下面的壓縮文件:
這個選項是將當前的工作簿壓縮,點擊壓縮按鈕后可以得到下面的壓縮文件:
這個工具,我提供了兩個選項,1 是瀏覽文件,選擇要壓縮的單個文件 2 是瀏覽文件,選擇要壓縮的多個文件:
我們仍是先點擊按鈕:
這個時候會彈出下面的對話框:
此時我們可以選擇要解壓的文件,我們任意選擇一個剛才測試后形成的文件:
點擊打開,最后會有解壓完成的提示:
在文件夾中我們可以找到這個文件:
這個解壓工具選項和上一個基本是類似的,只不過是可以選擇多個文件,我們測試一下,在彈出選擇文件的窗口中我們選擇多個文件:
最后會提示形成一個解壓后的文件夾:
打開這個文件夾,我們會看到解壓后的文件了:
NZ10工具利用到的技術總結如下:
1 文件的選擇及復制
2 文件夾的指定及創建
3 shell函數的利用
4 文件是否打開的判斷
5 split函數的替代方案
6 文件名不重復的解決方案
【分享成果,隨喜正能量】
下面是NZ系列VBA應用工具:
【分享成果,隨喜正能量】真正能給你撐腰的,是豐富的知識儲備,足夠的經濟基礎,持續的情緒穩定,可控的生活節奏,和那個打不敗的自己。。
下面的代碼,可以取消所有隱藏的行和列。
如果你從別人那里獲得一個Excel文件,并希望沒有隱藏的行與列,那么下面的代碼對你非常有用。
Sub UnhideRowsColumns() Columns.EntireColumn.Hidden=False Rows.EntireRow.Hidden=False End Sub
把多個單元格合并成一個單元格時常用的做法:
如果你的工作表里面有合并的單元格,使用下面代碼可以一次性取消所有合并的單元格。
Sub UnmergeAllCells() ActiveSheet.Cells.UnMerge End Sub
很多時候,您可能需要創建工作的各個版本。
一個好的做法,就是在工作薄名稱上,加上時間戳。
使用時間戳將允許您返回到某個文件,查看進行了哪些更改或使用了哪些數據。
下面的代碼會自動保存工作簿在指定的文件夾中,并添加一個時間戳時保存。
Sub SaveWorkbookWithTimeStamp() Dim timestamp As String timestamp=Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hh-ss") ThisWorkbook.SaveAs "C:UsersUsernameDesktopWorkbookName" & timestamp End Sub
C:UsersUsernameDesktopWorkbookName 你可以制定文件位置和文件名。
"dd-mm-yyyy"指的的日期的格式。
"hh-ss"指的是時間的格式
如果您使用不同年份或部門或產品的數據,可能需要將不同的工作表保存為PDF文件。
如果手動完成,這可能是一個耗時的過程,但vba確可以加快速度。
下面是一個將每個工作表保存為單獨PDF的VBA代碼
Sub SaveWorkshetAsPDF() Dim ws As Worksheet For Each ws In Worksheets ws.ExportAsFixedFormat xlTypePDF, "C:UsersSumitDesktopTest" & ws.Name & ".pdf" Next ws End Sub
在上面的代碼中,我指定了要保存pdf的文件夾位置的地址。
請注意,此代碼僅適用于工作表。
下面是將整個工作簿保存為指定文件夾中的PDF格式的代碼
Sub SaveWorkshetAsPDF() ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C:UsersSumitDesktopTest" & ThisWorkbook.Name & ".pdf" End Sub
你可以修改儲存文件的文件件。
注意:9~10代碼保存為PDF文件,需要在工作表里面設置好打印的區域。如果有空的工作表,那么程序會報錯。
30個有用的Excel VBA代碼(1~5)