下面我们就来看看在Excel VBA程序写入一个Excel范围为CSV(逗号分隔值)文本文件。

现状:

Write Data to Text File in Excel VBA

将工作表上的一个命令按钮并添加以下代码行:

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)的列数。

  1. 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.选择数据和点击在片材上的命令按钮。

结果:

Write Data to Text File Result