首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将用于打印的十进制分隔符设置为不同于系统设置的文件

如何将用于打印的十进制分隔符设置为不同于系统设置的文件
EN

Stack Overflow用户
提问于 2015-05-11 12:08:38
回答 1查看 2.2K关注 0票数 1

使用Excel 2010中的VBA,我希望在工作表中打印单元格的内容,该工作表是文件的十进制数。我使用的是“打印#”语句。在我工作的环境中,逗号‘,’是全系统范围的十进制分隔符。对于打印输出,我希望点“.”成为十进制分隔符。

下列代码不起作用:

代码语言:javascript
复制
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企业控制面板中更改系统范围的设置时,我得到了所需的输出,但这不是我想要的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-11 12:23:57

由于您使用的是宏,所以可以直接控制输出到文本文件的材料:

代码语言:javascript
复制
Public Sub printDecimal()
    Dim st As String
    Close #1
    Open "C:\TestFolder\testfile.txt" For Output As #1
    st = Range("A1").Text
    st = Replace(st, ",", ".")
    Print #1, st
    Close #1
End Sub

使用.Text属性可以获取单元格的值WYSIWYG。剩下的只是字符串操作。

EDIT#1:

发布的代码不能工作的原因是,应用Application.DecimalSeparator类似于应用formats......the基础值没有改变。运行此命令以查看差异:

代码语言:javascript
复制
Sub demo()
    Dim st As String, st2 As String
    Application.UseSystemSeparators = False
    Application.DecimalSeparator = "|"
    Close #1
    Open "C:\TestFolder\testfile2.txt" For Output As #1
    Print #1, ActiveSheet.Range("A1").Value & vbCrLf & ActiveSheet.Range("A1").Text
    Close #1
    Application.UseSystemSeparators = True
End Sub
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30167265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档