我想将所选数据从Excel工作表导出到简单的txt文件。 必须将A列导出为INT,将B列导出为String,将C列导出为INT,将D列导出为String,将E列导出为Double(导出时必须将数据另存为double格式-35.50、30.00、0.00) 您可以查看附件图片以获取更多信息。 列A.B,C,D很好,但是我不能强制将列E的值提取为两倍(在excel中,此列看起来很好-例如35.00,但是提取到txt文件时为35) 这是我的VBA脚本:
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Option Explicit
Private Sub CommandButton1_Click()
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
myFile = Application.DefaultFilePath & "\rezultat.txt"
Set rng = Selection
Open myFile For Output As #1
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
cellValue = rng.Cells(i, j).Value
If j = rng.Columns.Count Then
Write #1, cellValue
Else
Write #1, cellValue,
End If
Next j
Next i
Close #1
End Sub
这就是我的txt文件的结果:
1,"1144641",1,"NAME-STRING VALUE",350.5
一切都很好,除了最后一个值:必须为350.50 您可以查看附件中的屏幕截图
答案 0 :(得分:0)
将值格式化为将其写入文件时显示2个小数位
If j = rng.Columns.Count Then
Write #1, Format(cellValue, "#.00")
'or Format(cellValue, "Standard")
Else
Write #1, cellValue,
End If
这是因为默认情况下,仅写入单元格的值/内容,而不写入单元格格式。
如果您希望避免将值写成带引号的字符串,则可以构造单个字符串以为每一行写,而不是迭代行和列。例如,
cellValues = rng.Cells(i, 1).Value & ",""" & rng.Cells(i, 2).Value & """," _
& ... & Format(rng.Cells(i, 5), "#.00")
要加引号,必须加双引号。