在excel 2010中使用vba我想在工作表中打印单元的内容,这是文件的小数号。我正在使用" Print#"语句。我正在逗号‘,是系统宽的小数分离器的环境中工作。对于打印输出,我希望要点´。
以下代码不起作用:
Public Sub printDecimal()
Application.UseSystemSeparators = False
Application.DecimalSeparator = "."
Open "testfile.txt" For Output As #1
Print #1, ActiveSheet.Range("A1").Value
Close #1
Application.UseSystemSeparators = True
End Sub
打印#语句的文档说:
使用PRINT#写入文件的所有数据都在国际上意识到;也就是说,使用适当的十进制将数据正确格式化分离器。
当我更改Windows 7 Enterprise Control面板中的系统宽设置时,我会得到所需的输出,但这不是我想要的。
由于您使用的是宏,您可以直接控制要输出的材料到文本文件:
Public Sub printDecimal()
Dim st As String
Close #1
Open "C:TestFoldertestfile.txt" For Output As #1
st = Range("A1").Text
st = Replace(st, ",", ".")
Print #1, st
Close #1
End Sub
使用 .Text 属性允许您获取单元格值Wysiwyg。其余只是字符串操纵。
编辑#1:
发布的代码不起作用的原因是应用 application.decimalseparator 类似于应用格式……基础值不会更改。运行以查看区别:
Sub demo()
Dim st As String, st2 As String
Application.UseSystemSeparators = False
Application.DecimalSeparator = "|"
Close #1
Open "C:TestFoldertestfile2.txt" For Output As #1
Print #1, ActiveSheet.Range("A1").Value & vbCrLf & ActiveSheet.Range("A1").Text
Close #1
Application.UseSystemSeparators = True
End Sub