Excel VBA 2013 仅自定义子 粘贴未使用 FormulaR1C1 在单元格中执行

Excel VBA 2013 Customised Sub only Pasted not executed in cell with use of FormulaR1C1

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

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") 单元格只是用公式填充但没有执行。

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

然而,调用 fG_ReFormattingInvoiceNumber() 在原始文件 Testing.xlsm/ Sub Macro3 中我捕获了 VBA 行。

我看到的第一件事是 ReInvoicingWBook 是一个指向我的应用程序监视的文件 XLSM 的指针。也许,这是一个原因...

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

您可以使用 .Calculate.

强制计算单元格
Sub Macro3()
    Range("F5").FormulaR1C1 = "=fG_ReFormattingInvoiceNumber(RC[-3],3)"
    Range("F5").Calculate
    ActiveWorkbook.Save
End Sub

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

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