下面我们将看一下Excel VBA中的程序,该程序将Excel范围写入CSV(逗号分隔值)文本文件。
情况:
在您的工作表上放置一个命令按钮,并添加以下代码行:
1.首先,我们声明一个名为myFile的字符串类型的变量,一个名为rng的Range类型的对象,一个名为Variant类型的cellValue变量,一个名为Integer的变量i和一个名为Integer的变量j。我们在这里使用Variant变量是因为Variant变量可以保存任何类型的值。
将 myFile 作为 字符串昏暗,将rng 作为范围,将cellValue 作为 Variant,将i 作为 整数,将j 作为 整数
2.我们需要指定文件的完整路径和文件名。
myFile = Application.DefaultFilePath&“ \ sales.csv”
注意:DefaultFilePath属性返回默认文件路径。要更改默认文件位置,请在“文件”选项卡上,单击“选项”,然后单击“保存”。
3.我们使用所选范围初始化范围对象rng。
设置 rng =选择
4.添加以下代码行:
打开 myFile 输出为#1
注意:此语句允许将文件写入。在其余的代码中,我们可以将文件称为#1。如果文件已经存在,则将其删除并创建一个具有相同名称的新文件。
5.启动双循环。
对于 i = 1 到 rng.Rows.Count
对于 j = 1 到 rng.Columns.Count
对于 j = 1 到 rng.Columns.Count
注意:rng.Rows.Count返回行数(在此示例中为17),rng.Columns.Count返回列数(在本示例中为4)。
6. Excel VBA将单元格的值写入变量cellValue。
cellValue = rng.Cells(i,j).Value
7.添加以下代码行,以将cellValue的值写入文本文件。
如果 j = rng.Columns.Count,则
写入#1,cellValue,
否则
写入#1,cellValue,如果
结束
写入#1,cellValue,
否则
写入#1,cellValue,如果
结束
说明:由于If Then Else语句,因此当j等于列数(一行中的最后一个值)时,Excel VBA仅开始换行(Write#1,cellValue)。要用逗号分隔值,请使用Write#1,cellValue,(带逗号)。
8.不要忘记关闭两个循环。
下一步 Ĵ
接下来我
接下来我
9.关闭文件。
关闭#1
10.选择数据,然后单击工作表上的命令按钮。
结果: