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



我写了一个特定的子来格式化另一个单元格中的数据。

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()在我捕获 VBA 行的原始文件Testing.xlsm/SubMacro3中效果很好。

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

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

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

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

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

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

最新更新