如题所述
打开Excel表格,点击菜单栏上边的【开发工具】、【Visual Basic】打开VBA编辑器。
请点击输入图片描述
在VBA编辑器的菜单栏上边点击【插入】、【模块】。
请点击输入图片描述
在模块的代码窗口里边输入以下使用Array数组的程序代码。对比之前的VBA程序代码,将会发现后面的程序比较简洁。
Sub CreateText2()
Dim i, j, k, arr
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")
Set fs = CreateObject("Scripting.FileSystemObject") '对计算机系统文件进行访问
Set fi = fs.CreateTextFile("d:\Code12345.txt", True) '在D盘里边创建Code12345.txt文本文件
arr = Array("[User]", "uid=", "last_name=", "frist_name=", "accessibility=", _
"password=", "SAPME:DEFAULT SITE=", "role=", "group=") '把固定内容写入数组里边
For i = 1 To 1000 '从第一行到1000行
k = Application.WorksheetFunction.CountIf(mysheet1.Range(mysheet1.Cells(i, 1), _
mysheet1.Cells(i, 8)), "") '统计空白单元格的个数
If k = 0 Then '如果单元格空白个数为0则:
j = 0 'j初始化,数组从0调用
fi.WriteLine (arr(j)) '把数组里边内容写入文本文档
For j = 1 To 8 '从第一列到第八列
fi.WriteLine (arr(j) & mysheet1.Cells(i, j)) '从数组和单元格获取内容写入文本文档
Next
End If
Next
fi.Close
End Sub
请点击输入图片描述
请点击输入图片描述
VBA程序代码解读:
(1)For……Next循环嵌套使用时,外边的For执行一次,待内部的For执行完了之后再执行外边For一次,如此循环,外边的For执行完了之后,循环结束。
(2)Array是数组函数,里边的参数通常是由逗号(,)间隔,其对应值的序号是从0开始的。如:arr=Array("AA","BB","CC"),arr(1)的值为数组里边的第二个(即"BB")。
(3)如果要数组里边对应的值,则点击【视图】、【本地窗口】,再按下【F8】键逐行运行程序,过了数组程序行便可以在“本地窗口”的展开数组里边看到相应的值。
请点击输入图片描述
请点击输入图片描述
运行VBA程序,其执行的结果都是一样的。
请点击输入图片描述