VBA将逗号追加到整数结束,不自动更改格式

时间:2013-05-15 13:00:32

标签: excel vba

我当前的项目是重写一个用98编写的程序。他们的解决方案是在Excel中执行一些操作,在Word中执行下一部分,然后在第3步中返回Excel。该程序同步2个文件,他们的解决方案只是对于需要同步的20个文件的花花公子 - 但是,现在有大约1,000个文件要同步 - 所以我正在努力简化流程。文件的输出范围介于X.X和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中完成,我只是找不到解决方案而不是重新打开Word,然后再回到Excel

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以插入一列并使用公式。这样的事情应该有效

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

答案 1 :(得分:1)

既然说明了

  

第二部分是附加一个逗号,然后是一个关于数字的字母   关系

你需要一个公式,而不仅仅是格式化选项。在VBA代码中,选择原始值旁边的单元格,然后添加以下代码行:

Selection.FormulaR1C1 = "=TEXT(RC[-1],""#0.00000"") & "","""

这会为您提供格式和逗号(无论小数点左侧的数字长度) - 但要添加最后一个字母,您显然必须修改公式以满足您的特定需求