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