使用VBA數(shù)組Array簡化代碼
編寫VBA程序時,如果需要逐行寫相同的代碼,會顯得冗長而容易出錯。特別是當代碼量較大時,更加繁雜。初學VBA可以一行一行地編寫代碼,但是隨著熟練度的提高,結合數(shù)組Array來編寫程序會更好,因為這樣可
編寫VBA程序時,如果需要逐行寫相同的代碼,會顯得冗長而容易出錯。特別是當代碼量較大時,更加繁雜。初學VBA可以一行一行地編寫代碼,但是隨著熟練度的提高,結合數(shù)組Array來編寫程序會更好,因為這樣可以使程序更加簡潔,并提高運行速度。
步驟1:打開VBA編輯器
首先,打開Excel表格,點擊菜單欄上的【開發(fā)工具】,再選擇【Visual Basic】,即可打開VBA編輯器。
步驟2:插入模塊
在VBA編輯器的菜單欄上,點擊【插入】,然后選擇【模塊】,即可在代碼窗口中插入一個新的模塊。
步驟3:使用Array數(shù)組編寫程序
在模塊的代碼窗口中輸入以下代碼:
Sub CreateText2()
Dim i, j, k, arr
On Error Resume Next
Set mysheet1 ("Sheet1")
Set fs CreateObject("") '對計算機系統(tǒng)文件進行訪問
Set fi ("d:Code12345.txt", True) '在D盤里創(chuàng)建Code12345.txt文本文件
arr Array("[User]", "uid", "last_name", "frist_name", "accessibility", _
"password", "SAPME:DEFAULT SITE", "role", "group") '把固定內容寫入數(shù)組里
For i 1 To 1000 '從第一行到1000行
k (mysheet1.Range(mysheet1.Cells(i, 1), _
mysheet1.Cells(i, 8)), ";") '統(tǒng)計空白單元格的個數(shù)
If k 0 Then '如果單元格空白個數(shù)為0則:
j 0 'j初始化,數(shù)組從0調用
fi.WriteLine(arr(j)) '把數(shù)組里邊內容寫入文本文檔
For j 1 To 8 '從第一列到第八列
fi.WriteLine(arr(j) mysheet1.Cells(i, j)) '從數(shù)組和單元格獲取內容寫入文本文檔
Next
End If
Next
End Sub
解讀VBA程序代碼
這段代碼是使用VBA數(shù)組Array來簡化之前的代碼。以下是對代碼中的幾個要點的解釋:
- 使用嵌套循環(huán)時,外部循環(huán)先執(zhí)行一次,然后等待內部循環(huán)執(zhí)行完畢后再繼續(xù)執(zhí)行外部循環(huán),這樣循環(huán)往復,直到外部循環(huán)執(zhí)行完畢后,整個循環(huán)結束。
- Array是一個數(shù)組函數(shù),它的參數(shù)通常用逗號(,)分隔,對應值的索引從0開始。例如:arrArray("AA","BBB","CC"),則arr(1)的值為數(shù)組中的第二個值(即"BBB")。
- 如果要查看數(shù)組中的對應值,可以點擊【視圖】,選擇【局部窗口】,然后按下【F8】鍵逐行運行程序,當程序執(zhí)行到數(shù)組的那一行時,就可以在“局部窗口”中展開數(shù)組,查看相應的值。
運行VBA程序
無論如何編寫代碼,運行結果都應該是相同的。你可以嘗試運行這個VBA程序,看看它的執(zhí)行結果。