我正在准备excel宏从输入文件中读取数据并根据条件将其输出到两个不同的文件。
代码段如下
fileName1="test1.txt"
fileName2="test2.txt"
file1 = FreeFile()
file2 = FreeFile()
Open fileName1 For Output As file1
Open fileName2 For Output As file2
If Condition1=true Then
sWrite1="Write to file 1"
print #file1,sWrite1
Else
sWrite2="Write to file 2"
print #file2,sWrite2
End If
Close #file1
Close #file2
预期输出为"写入文件1"应该去file1 和"写入文件2"应该是file2。
但在运行宏之后, 两者"写入文件1"和"写入文件2"被写入file2 并且file1为空。
任何人都可以帮我解决如何同时写两个文件的问题。
答案 0 :(得分:3)
FreeFile()
返回可用于打开的下一个文件编号。当你像你一样连续两次调用它时,它会在两种情况下都返回相同的值(可能是1),因为你还没有使用文件编号,使它仍可用于打开。
相反,您需要在再次调用FreeFile()
之前使用该文件编号。
更改
file1 = FreeFile()
file2 = FreeFile()
Open fileName1 For Output As file1
Open fileName2 For Output As file2
到
file1 = FreeFile()
Open fileName1 For Output As file1
file2 = FreeFile()
Open fileName2 For Output As file2
它将按预期工作。