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