数据写入到使用Excel VBA文本文件
下面我们就来看看在Excel VBA程序写入一个Excel范围为CSV(逗号分隔值)文本文件。
现状:
将工作表上的一个命令按钮并添加以下代码行:
1.首先,我们声明一个称为String类型MYFILE变量,称为类型范围RNG对象,Variant类型的变量称为cellValue,可变称为I型整数的,和类型整数的变量称J。在这里,我们使用一个Variant变量,因为Variant变量可以保存任何类型的值。
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
2.我们需要指定的完整路径和文件的文件名。
myFile = Application.DefaultFilePath & "\sales.csv"
注:DefaultFilePath属性返回的默认文件路径。要更改默认文件位置,文件选项卡上,单击选项,保存。
3.我们初始化所选择的范围的范围对象RNG。
Set rng = Selection
4.添加以下代码行:
Open myFile For Output As #1
注意:此语句允许文件被写入。我们可以在我们的代码的其余部分中引用该文件为#1。如果该文件已经存在,它会被删除并用相同名称的新文件将被创建。
5.启动一个双环。
For i = 1 To rng.Rows.Count For j = 1 To rng.Columns.Count
注意:rng.Rows.Count返回的行数(17在此实例中),并返回rng.Columns.Count(在本实施例4)的列数。
-
Excel VBA中写入可变cellValue一个单元格的值。
cellValue = rng.Cells(i, j).Value
7.添加以下代码行写cellValue到文本文件中的值。
If j = rng.Columns.Count Then Write #1, cellValue Else Write #1, cellValue, End If
说明:由于如果那么Else语句时,Excel VBA只启动一个新行(写#1,cellValue)当j等于列数(一排最后一个值)。将这些值用逗号,使用写#1,cellValue,(用逗号)分开。
8.不要忘记关闭两个循环。
Next j Next i
9.关闭文件。
Close #1
10.选择数据和点击在片材上的命令按钮。
结果: