Excel:[12]批量製作CSV資料表?

總所周知,Excel的功能十分強大,而其最核心的功能在於資料處理。熟練駕奴Excel,您的工作將充滿快樂和自信。當您僅花上幾分鐘就完成了別人花上幾天功夫才能完成的資料處理工作時,心中的那份喜悅只有您自己才能體會得到!下面給大家展示的是Excel批量製作資料表……

工具/原料

計算機

Excel

VBA

目的

通過資料模板與VBA結合,批量製作CSV資料表,要求使用規則逐步遞增的命名方式來命名批量製作出來的資料表,資料表的內容根據實際需求由最初的模板和提供的基礎值自動生成。儘量減少手動操作,真正實現全自動!如圖所示為批量製作出來的CSV資料表。

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

過程

編輯資料模板,只要A2和B2單元格發生變化,其它相應的單元格就會通過引用公式來更新資料;

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

編輯好資料模板後,開啟VBA編輯器,選擇選單“工具”——“巨集”——“Visual Basic 編輯器”(快捷鍵為:Alt+F11);

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

插入使用者窗體,在Visual Basic 編輯器選單欄裡選擇“插入”——“使用者窗體”,然後編輯使用者窗體(該窗體作為模板基礎資料錄入部分),控制元件的具體使用稍微複雜一些,這裡就不作介紹啦;

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

編輯窗體和控制元件程式碼,右擊“UserForm1”——“檢視程式碼”,在程式碼視窗錄入相應的程式碼(由於這部分涉及的內容和步驟比較繁瑣,只提供最終程式碼參考),程式碼如下:

Private Sub CommandButton1_Click()

Dim n As Long

If TextBox1 <> "" And TextBox2 <> "" And TextBox3 <> "" And TextBox2 < TextBox3 Then

On Error Resume Next

MkDir CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & TextBox1

For n = 1 To (TextBox3 - TextBox2 + 1) / 10

Sheets(1).Cells(2, 1).Value = TextBox1 & "-" & n

Sheets(1).Cells(2, 2).Value = TextBox2 + 10 * (n - 1)

ActiveWorkbook.SaveAs Filename:=CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & TextBox1 & "\" & TextBox1 & "-" & n, FileFormat:=xlCSV, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

Next n

Unload Me

MsgBox "資料處理成功!", vbOKOnly + 64, "提示"

Else

MsgBox "請核對資料資訊!", vbOKOnly + 64, "提示"

TextBox1.SetFocus

End If

End Sub

Private Sub CommandButton2_Click()

TextBox1 = ""

TextBox2 = ""

TextBox3 = ""

TextBox1.SetFocus

End Sub

Private Sub CommandButton3_Click()

Unload Me

End Sub

Private Sub TextBox1_Change()

Dim i%, Str$

With TextBox1

For i = 1 To Len(.Text)

Str = Mid(.Text, i, 1) '遍歷文字框中輸入的每一個字元。

Select Case Str

Case "a" To "z" '列出允許輸入的字元。

Case "A" To "Z" '列出允許輸入的字元。

Case Else

Beep

.Text = Replace(.Text, Str, "") '如果輸入的不是允許的字元,則使用Replace函式替換成空白。

End Select

Next

End With

End Sub

Private Sub TextBox2_Change()

Dim i%, Str$

With TextBox2

For i = 1 To Len(.Text)

Str = Mid(.Text, i, 1) '遍歷文字框中輸入的每一個字元。

Select Case Str

Case "0" To "9" '列出允許輸入的字元。

Case Else

Beep

.Text = Replace(.Text, Str, "") '如果輸入的不是允許的字元,則使用Replace函式替換成空白。

End Select

Next

End With

End Sub

Private Sub TextBox3_Change()

Dim i%, Str$

With TextBox3

For i = 1 To Len(.Text)

Str = Mid(.Text, i, 1) '遍歷文字框中輸入的每一個字元。

Select Case Str

Case "0" To "9" '列出允許輸入的字元。

Case Else

Beep

.Text = Replace(.Text, Str, "") '如果輸入的不是允許的字元,則使用Replace函式替換成空白。

End Select

Next

End With

End Sub

編輯好窗體程式碼後,點選儲存;

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

插入模組,該模組的作用是調出錄入窗體(雖然窗體本身已經實現自動載入,但是不能實現二次自動載入),在Visual Basic 編輯器選單欄裡選擇“插入”——“模組”,寫入程式碼:

Sub 開啟窗體()

UserForm1.Show

End Sub

模組程式碼錄入完畢後,點選儲存,然後關閉Visual Basic 編輯器;

Excel:[12]批量製作CSV資料表

回到資料表,調出錄入窗體,選擇選單“工具”——“巨集”——“巨集”(快捷鍵為:Alt+F8)——選擇“開啟窗體”——“執行”;

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

按規定要求,錄入基礎資料,然後點選“確定”(一旦確定,VBA程式碼馬上執行,將在桌面新建一個名為“Excel”的資料夾,在“Excel”資料夾裡批量建立10個CSV工作簿,名稱依次為Excel-1至Excel-10,內容也相應變化),確認“資料處理成功!”;

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

在桌面找到批量建立的CSV資料表,驗證結果!

Excel:[12]批量製作CSV資料表

Excel:[12]批量製作CSV資料表

注意事項

編輯程式碼的過程比較複雜,需要有足夠的耐心,需要不斷地去嘗試和修改;

為了相關巨集能正常執行,請把巨集的安全性設定為最低級別。

功能, 資料表, 資料處理, excel, 駕奴,
相關問題答案