VBA将逗号附加到整数的末尾,不要自动更改格式
我目前的项目是重写一个98年编写的程序。他们的解决scheme是在Excel中做一些,在Word中做下一个部分,然后在第三步中返回Excel。 该程序同步2个文件,他们的解决scheme只需要20个需要同步的文件 – 然而,现在有大约1000个文件同步 – 所以我正在精简过程。 文件的输出范围在XX和X.XXXXX之间 – 我用它们格式化它们
Columns("A:A").Select Selection.NumberFormat = "0.00000"
使文件更易于阅读。 但是第二部分是附加一个逗号,然后是关于数字关系的一个字母:对于手头的问题来说不是必需的。 当我尝试附加一个逗号时,Excel试图“修复”它并输出不正确。 例如:
0.42400
0.87200
1.31600
1.75200
变为:
0.424,
0.872,
1.316,
1.752,
当它应该留在X.XXXXX。 这是我所尝试的:
- 更改Excel的选项,以便小数标识符是'。' 数千是':'。
- `范围(“A”&ictr)=格式(范围(“A”&ictr)&“,”)
- Selection.NumberFormat =“0.00000”
- 其他论坛/ Google / Bing
我真的假设这可以在Excel中完成,我只是找不到解决scheme,而不是重新打开Word,然后回到Excel
有任何想法吗?
既然你说了
第二部分是附加一个逗号,然后是关于数字关系的一个字母
你将需要一个公式,而不仅仅是一个格式化选项。 在您的VBA代码中,select原始值旁边的单元格,然后添加以下代码行:
Selection.FormulaR1C1 = "=TEXT(RC[-1],""#0.00000"") & "","""
这会得到格式和逗号(不pipe小数点左边数字的长度) – 但要添加最后一个字母,显然必须修改公式以满足您的特定需求。
您可以插入一列并使用公式。 像这样的东西应该工作
Dim TotalRows As Long TotalRows = ActiveSheet.UsedRange.Rows.Count Columns("B:B").Insert With Range(Cells(1, 2), Cells(TotalRows, 2)) .Formula = "=LEFT(""'""&A1&REPT(""0"",5),7)" .Value = .Value End With Columns("A:A").Delete