3

我周围的一些人在 windows/office 中使用国家本地化。不幸的是,这导致我的宏无法进行简单的数学运算,因为它们使用逗号作为小数位,而我编辑的 pov-ray 文件仅使用逗号作为列表分隔符,点作为小数点。我知道在 Excel 中可以使用覆盖系统小数分隔符

With Application.
    .DecimalSeparator = "."
    .ThousandsSeparator = ","
    .UseSystemSeparators = False
End With

然而,在 MS Word 中没有像 DecimalSeparator 这样的 Application 属性。MS Word 中是否有一种在宏运行时覆盖系统分隔符的简单方法?或者我是否需要在读取 povray 文件期间努力替换它们?

4

2 回答 2

3

由于不是很有耐心,我以“更艰难的方式”做到了。我声明了公共变量

Public strDecimal As String

然后在 main sub 的开头,我将其值设置为:

strDecimal = Application.International(wdDecimalSeparator)

然后在源代码中,我替换了所有读入,例如

CDbl(strShort(5))

CDbl(Replace(strShort(5), ".", strDecimal))

和所有的写出,比如

Selection.TypeText Text:=CStr(Int(1000 * bondRadius) / 1000)

Selection.TypeText Text:=CStr(Replace(Int(1000 * bondRadius) / 1000, strDecimal, "."))

它不像覆盖系统设置那样优雅,但它花费了我不多的时间并且它对我有用。如果有人能看到原因,为什么它有时会失败,请留下一些评论。

我将使用 barrowc 的评论 (thanx) 中的信息来查看它是只读还是读写值。

于 2013-04-25T09:51:24.837 回答
-2
sub ReplaceCommabetweenDigits(sData as String)

 sData = Replace(sData, "0,0", "0.0")
sData = Replace(sData, "0,1", "0.1")
sData = Replace(sData, "0,2", "0.2")
sData = Replace(sData, "0,3", "0.3")
sData = Replace(sData, "0,4", "0.4")
sData = Replace(sData, "0,5", "0.5")
sData = Replace(sData, "0,6", "0.6")
sData = Replace(sData, "0,7", "0.7")
sData = Replace(sData, "0,8", "0.8")
sData = Replace(sData, "0,9", "0.9")
sData = Replace(sData, "1,0", "1.0")
sData = Replace(sData, "1,1", "1.1")
sData = Replace(sData, "1,2", "1.2")
sData = Replace(sData, "1,3", "1.3")
sData = Replace(sData, "1,4", "1.4")
sData = Replace(sData, "1,5", "1.5")
sData = Replace(sData, "1,6", "1.6")
sData = Replace(sData, "1,7", "1.7")
sData = Replace(sData, "1,8", "1.8")
sData = Replace(sData, "1,9", "1.9")
sData = Replace(sData, "2,0", "2.0")
sData = Replace(sData, "2,1", "2.1")
sData = Replace(sData, "2,2", "2.2")
sData = Replace(sData, "2,3", "2.3")
sData = Replace(sData, "2,4", "2.4")
sData = Replace(sData, "2,5", "2.5")
sData = Replace(sData, "2,6", "2.6")
sData = Replace(sData, "2,7", "2.7")
sData = Replace(sData, "2,8", "2.8")
sData = Replace(sData, "2,9", "2.9")
sData = Replace(sData, "3,0", "3.0")
sData = Replace(sData, "3,1", "3.1")
sData = Replace(sData, "3,2", "3.2")
sData = Replace(sData, "3,3", "3.3")
sData = Replace(sData, "3,4", "3.4")
sData = Replace(sData, "3,5", "3.5")
sData = Replace(sData, "3,6", "3.6")
sData = Replace(sData, "3,7", "3.7")
sData = Replace(sData, "3,8", "3.8")
sData = Replace(sData, "3,9", "3.9")
sData = Replace(sData, "4,0", "4.0")
sData = Replace(sData, "4,1", "4.1")
sData = Replace(sData, "4,2", "4.2")
sData = Replace(sData, "4,3", "4.3")
sData = Replace(sData, "4,4", "4.4")
sData = Replace(sData, "4,5", "4.5")
sData = Replace(sData, "4,6", "4.6")
sData = Replace(sData, "4,7", "4.7")
sData = Replace(sData, "4,8", "4.8")
sData = Replace(sData, "4,9", "4.9")
sData = Replace(sData, "5,0", "5.0")
sData = Replace(sData, "5,1", "5.1")
sData = Replace(sData, "5,2", "5.2")
sData = Replace(sData, "5,3", "5.3")
sData = Replace(sData, "5,4", "5.4")
sData = Replace(sData, "5,5", "5.5")
sData = Replace(sData, "5,6", "5.6")
sData = Replace(sData, "5,7", "5.7")
sData = Replace(sData, "5,8", "5.8")
sData = Replace(sData, "5,9", "5.9")
sData = Replace(sData, "6,0", "6.0")
sData = Replace(sData, "6,1", "6.1")
sData = Replace(sData, "6,2", "6.2")
sData = Replace(sData, "6,3", "6.3")
sData = Replace(sData, "6,4", "6.4")
sData = Replace(sData, "6,5", "6.5")
sData = Replace(sData, "6,6", "6.6")
sData = Replace(sData, "6,7", "6.7")
sData = Replace(sData, "6,8", "6.8")
sData = Replace(sData, "6,9", "6.9")
sData = Replace(sData, "7,0", "7.0")
sData = Replace(sData, "7,1", "7.1")
sData = Replace(sData, "7,2", "7.2")
sData = Replace(sData, "7,3", "7.3")
sData = Replace(sData, "7,4", "7.4")
sData = Replace(sData, "7,5", "7.5")
sData = Replace(sData, "7,6", "7.6")
sData = Replace(sData, "7,7", "7.7")
sData = Replace(sData, "7,8", "7.8")
sData = Replace(sData, "7,9", "7.9")
sData = Replace(sData, "8,0", "8.0")
sData = Replace(sData, "8,1", "8.1")
sData = Replace(sData, "8,2", "8.2")
sData = Replace(sData, "8,3", "8.3")
sData = Replace(sData, "8,4", "8.4")
sData = Replace(sData, "8,5", "8.5")
sData = Replace(sData, "8,6", "8.6")
sData = Replace(sData, "8,7", "8.7")
sData = Replace(sData, "8,8", "8.8")
sData = Replace(sData, "8,9", "8.9")
sData = Replace(sData, "8,0", "8.0")
sData = Replace(sData, "9,1", "9.1")
sData = Replace(sData, "9,2", "9.2")
sData = Replace(sData, "9,3", "9.3")
sData = Replace(sData, "9,4", "9.4")
sData = Replace(sData, "9,5", "9.5")
sData = Replace(sData, "9,6", "9.6")
sData = Replace(sData, "9,7", "9.7")
sData = Replace(sData, "9,8", "9.8")
sData = Replace(sData, "9,9", "9.9")


End sub

于 2021-04-26T17:56:57.920 回答