VBA-Excel数据转换为.txt格式的问题
我正在解析Excel数据表的一部分,将其中的3列数字数据复制到一个.txt文件中。除了文本文件中的列之外,所有行都以逗号结尾。如果不使用“替换”脚本,我是否可以第一次正确地编写它们<代码>单元格值为双精度VBA-Excel数据转换为.txt格式的问题,excel,vba,Excel,Vba,我正在解析Excel数据表的一部分,将其中的3列数字数据复制到一个.txt文件中。除了文本文件中的列之外,所有行都以逗号结尾。如果不使用“替换”脚本,我是否可以第一次正确地编写它们单元格值为双精度 Open myFile For Output As #1 For i = 1 To 25 For j = 1 To 3 cellValue = Cells(i, j).Value If j = 3 Then Write #1, cellV
Open myFile For Output As #1
For i = 1 To 25
For j = 1 To 3
cellValue = Cells(i, j).Value
If j = 3 Then
Write #1, cellValue
Else
Write #1, cellValue,
End If
Next j
Next i
Close #1
在写入前,您可以将每行中的三项连接起来:
Dim V(1 to 3) As Variant
Open myFile For Output As #1
For i = 1 To 25
For j = 1 To 3
V(j) = Cells(i, j).Value
Next j
Write #1, Join(V)
Next i
Variant
类型应该能够处理所需的类型转换(假设它们是单元格中的数值),尽管如果需要强制转换为double,可以使用V(j)=CDbl(单元格(i,j).Value)
,尽管Join()
只会将它们转换为字符串
上面的代码在数字之间插入空格。如果需要其他分隔符(例如分号),可以使用类似于Join(V,“;”)
顺便说一下,这是VBA而不是VBScript。虽然它们有着密切的联系,但它们不是相同的语言。正确地书写它们对你来说意味着什么?你已经告诉了我们你现在得到了什么,但是没有告诉我们你想要什么,John,这样可以去掉逗号,但是每一行都用引号括起来。即使使用CDbl命令也会保留引号。这些文件最终被传送到其他需要3列数据的软件中,而这些数据中没有任何其他内容。您可以用
打印替换写入
。当我想用VBA编写文件时,我倾向于根本不使用write
或Print
,而是使用VBScript的TextStream
对象,可以从VBA
调用这些对象。有关详细信息,请参阅。因此,这很有效。但它确实在最后一行后面放了一个回车,我不想这样。解决方案是移除它(发生在已知行#之后),还是可以在第一个位置防止它?