将excel工作表转换为.txt,数字复制时不带倒逗号&引用;在excelvba中

将excel工作表转换为.txt,数字复制时不带倒逗号&引用;在excelvba中,excel,vba,Excel,Vba,我正在尝试将excel工作表保存为.txt格式,以便在SAP中使用。 我遇到的问题是,有一列包含数字,当我将Excel工作表转换为.txt格式时,数字显示为倒逗号“”,例如33837变为“33837” 对我来说,重要的是数字不能用倒逗号显示,因为SAP无法识别并给出错误 此外,由于用户在欧洲,十进制分隔符应为逗号(,),而千位分隔符应为句号(.)。我可以使用以下代码设置数字格式: For i = 4 To lRow If (currentS.Cells(i, 30) = "&q

我正在尝试将excel工作表保存为.txt格式,以便在SAP中使用。 我遇到的问题是,有一列包含数字,当我将Excel工作表转换为.txt格式时,数字显示为倒逗号“”,例如33837变为“33837”

对我来说,重要的是数字不能用倒逗号显示,因为SAP无法识别并给出错误

此外,由于用户在欧洲,十进制分隔符应为逗号(,),而千位分隔符应为句号(.)。我可以使用以下代码设置数字格式:

For i = 4 To lRow
    If (currentS.Cells(i, 30) = "") Then
    Else

 Dim S As String
 Dim D As Double
 Const myDecSep As String = ","
 Const myThousSep As String = "."

D = currentS.Cells(i, 30).Value
S = Format(D, "#,##0.00")

S = Replace(S, Application.DecimalSeparator, Chr(1))
S = Replace(S, Application.ThousandsSeparator, Chr(2))
S = Replace(S, Chr(1), myDecSep)
S = Replace(S, Chr(2), myThousSep)
    newS.Cells(i - 2, 28).Value = S
    End If
Next 
将所有单元格复制到新Excel工作簿(newWB)中的新Excel工作表(新闻)后。然后,我使用以下代码将此新工作簿保存为.txt格式:

newWB.SaveAs Filename:="C:\Users\oyin\Desktop\Service.txt", FileFormat:=xlText, CreateBackup:=False
下面的图片是保存的.txt文件。我需要数字显示为33.837,00,而不是“33.837,00”

提前谢谢

请更改:

newWB.SaveAs Filename:="C:\Users\oyin\Desktop\Service.txt", FileFormat:=xlText, CreateBackup:=False
与:

编辑:

请尝试下一种方法:

newWB.SaveAs Filename:="C:\Users\oyin\Desktop\Service.txt", FileFormat:=xlText, CreateBackup:=False, local:=False

@奥因:你有没有抽出时间来检查一下上面的建议?它不是为了解决你的问题而工作吗?倒逗号被删除了,但它产生了更多的问题。现在看来是33.837,0欧元。我要小数点后两位。其次,EUR应该在一个单独的列中,如我随问题附上的图片中所示。@Oyin您看到文本文件中显示的内容了吗,用记事本打开它,或者当您尝试在Excel中打开它时?@Oyin请尝试最后一个建议。我编辑了答案并放置了另一个代码行。我认为/假设您的问题与本地化有关…谢谢您的帮助,但它仍然不起作用。当我以记事本的形式打开.txt文件时,仍然会得到“33.837,00”。我总是用记事本打开。它在Excel中格式正确。当我将Excel文件保存为.txt文件时,问题就出现了。
newWB.SaveAs Filename:="C:\Users\oyin\Desktop\Service.txt", FileFormat:=xlText, CreateBackup:=False, local:=False