0

我目前的项目是重写一个用 98 编写的程序。他们的解决方案是在 Excel 中做一些,在 Word 中执行下一部分,然后在第三步返回 Excel。该程序同步 2 个文件,他们的解决方案对于需要同步的 20 个文件来说只是花花公子 - 但是,现在有大约 1,000 个文件需要同步 - 所以我正在努力简化这个过程。文件的输出范围在 XX 和 X.XXXXX 之间 - 我将它们格式化为

Columns("A:A").Select
Selection.NumberFormat = "0.00000"

使文件更易于阅读。但是第二部分是附加一个逗号,然后是一个关于数字关系的字母:对于手头的问题不是必需的。当我尝试附加逗号时,Excel 会尝试“修复”它并错误地输出它。例如:

0.42400

0.87200

1.31600

1.75200

变成:

.424,

.872,

1.316,

1.752,

什么时候应该停留在 X.XXXXX。这是我尝试过的:

  • 更改 Excel 的选项,使十进制标识符为“。” 千是':'。
  • `Range("A" & ictr) = Format(Range("A" & ictr) & ",")
  • Selection.NumberFormat = "0.00000,"
  • 其他论坛/谷歌/必应

我真的假设这可以在 Excel 中完成,除了重新打开 Word,然后返回 Excel 之外,我找不到其他解决方案

有任何想法吗?

4

2 回答 2

1

既然你说

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

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

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

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

于 2013-05-15T14:51:06.700 回答
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
于 2013-05-15T13:17:59.710 回答