Excel里面数据按原格式(行,列,空格分开)输出数据到txt文件。
大家好~我在Excel宏里面,运行下面编码的时候会有run time error "54" bad file mode
Sub Outputfile
Dim num As Double
Dim row As Integer
Dim col As Integer
row = 1
Open "Output.txt" For Input As #2
Print #2, num
Cells(row, 1) = num
Input #2, num
Cells(row, 2) = num
Input #2, num
Cells(row, 3) = num
row = row + 1
Close #2
MsgBox "Finished Writing"
End Sub
下面是我之前写的从txt读取数据到excel表哥,并把行列互换的编码,(col到row,row到col),可以运行并正常工作,大家可以用来参考一下。
下面是excel里面已经转换好的数据,需要用之前那个VBA输出到Output.txt
2.9 1.5 7.6 6.5 2.6
-2.1 1.2 -6.5 9.12 5.4
-10.4 12 13.5 -8.6 0.23
Open "Output.txt" For Input As #2
Sub Outputfile()
Dim arr, ss
Open "D:\Output.txt" For Append As #2
arr = Range("A1:E3")
For i = 1 To 3
ss = ""
For j = 1 To 5
ss = ss & arr(i, j) & " "
Next j
Print #2, ss
Next i
Close #2
MsgBox "Finished Writing"
End Sub
改成 for output 吧!
都提示你“错误的文件模式”了,还不知道如何改呀。
Input模式是用来“读文件”(输入)的,不是用来“写文件”(输出)的。
谢啦~这个可用。
可我有两个小问题,i 和j代表的是行列,ss 和 arr代表的是什么呢?
我是VB的初学者,所以有很多不懂的。
arr是二维数组,arr = Range("A1:E3")就是把单元格[A1:E3]赋值给数组arr;
ss,就是一个临时变量。
补充:VB , VBA