0

我已经编写了一个特定的子用于格式化来自另一个单元格的数据。

Sub Macro3()
    '>> First record to get the original code in Testing.xlsm <<
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=fG_ReFormattingInvoiceNumber(RC[-3],3)"
    Range("H5").Select
    ActiveWorkbook.Save

    '>>> I wrote in my application this line => ReInvoicingWBook.Sheets _
    '    (G_sheetNameREINVOICinG).Range("U5").FormulaR1C1 = _
    '    "=fG_ReFormattingInvoiceNumber(RC[-19],3)"
End Sub

问题是ReInvoicingWBook.Sheets(G_sheetNameREINVOICinG).Range("U5")Cell 只是填充了公式,但没有执行。

ReInvoicingWBook是由我在其中开发和编写的 Excel 应用程序打开的文件。

然而,调用 to 在我捕获 VBA 行的原始文件/ Sub中fG_ReFormattingInvoiceNumber()效果很好。Testing.xlsmMacro3

我看到的第一件事ReInvoicingWBook是指向由我的应用程序监控的文件 XLSM 的指针。或许,这是一个原因……

感谢您提供任何解决方案或帮助。

4

2 回答 2

0

您可以使用 强制计算单元格.Calculate

Sub Macro3()
    Range("F5").FormulaR1C1 = "=fG_ReFormattingInvoiceNumber(RC[-3],3)"
    Range("F5").Calculate
    ActiveWorkbook.Save
End Sub

作为一般规则,始终使用Option Explicit,避免使用.Selectand .Activate。此外,完全限定您的范围(这是我在上面的示例中没有做的事情,因为我没有上下文)。

于 2018-10-03T21:21:29.040 回答
0

我找到了它不起作用的原因:单元格被格式化为文本,而它必须是通用的。现在好了。

于 2018-10-04T20:14:27.077 回答