我写了一个特定的子来格式化另一个单元格中的数据。
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
。此外,完全限定您的范围(这是我在上面的示例中没有做的事情,因为我没有上下文(。
我找到了它不起作用的原因:单元格的格式为文本,而它必须是常规。现在很好。