【发布时间】:2015-05-28 09:03:48
【问题描述】:
一旦我知道计算机上设置了哪些区域设置,我正在尝试更新我的数组中的数值。
我使用了这个代码:
If Application.International(xlCountrySetting) <> 33 Then
For Each x In Country
x = Replace(x, ",", ".")
Next x
Else
For Each x In Country
x = Replace(x, ".", ",")
Next x
End If
当我调试时,我看到 x 已更改,但后来在代码中,Array 中的值没有被修改。
我知道我可以使用For i = LBound(Country,1) to UBound(Country,1),但我想知道是否有使用For Each 声明的方法。
有什么想法吗?
【问题讨论】:
-
当您说“数值”时,您是指数字的字符串表示形式吗?否则,尝试替换数值中的字符没有多大意义。显示您对 Country 的定义以及放入数组中的示例值会很有帮助。
-
这是十进制值,我的问题是关于区域设置,这些值要么是数字(小数分隔符和区域设置之间的良好匹配)要么是字符串(不匹配)。但我的问题是这些循环对实际数组值没有任何影响。替换工作很好。
-
所以你的数组是 Variant 类型的?
-
是的,通常我只是这样声明它
Dim Country(),在这里,我都尝试了。