如何通过VBA,在单元格中插入一个带有“-”或“$”等特殊字符的公式?

How to insert, through VBA, a formula in a cell with special characters like "-" or "$"?

我在互联网上搜索,没有任何帮助... 我只是希望能够让我的 VBA 代码在单元格中编写此公式:

=IF(C4="-"; "-"; Cars!C4*C4*Data!$C)

如您所料,有一个名为 "Cars" 的页面和一个名为 "Data" 的页面,我可以在其中选择所需的信息。

当然,因为它是 VBA 代码,C4 将有 2 个变量,一个用于 C,一个用于将进化的 4... 实际上,我试过这个:

Worksheets("Calculation").Range(Column & PosStartCalc + 1).Formula = "=" & "IF(" & Column & PosStartCalc & " = " & "" - "" & ";" & " - " & ";" & "Cars!" & Column & PosStart & "*" & Column & PosStartCalc & "*" & "Data!" & "C" & "8" & ")"

(变量Column包含列字母,变量PosStartCalc包含行号)

这伤害了我的眼睛,显然也伤害了 VBA 的眼睛,因为它给出了错误“运行-时间错误‘13’:类型不匹配” 谁能告诉我该怎么做?

提前致谢!

尝试以下操作,假设列变量是一个字符串,行是一个长变量。我可能没有正确设置所有变量,但您将能够在这里得到我的意思。

Sub test()

Dim Col As String: Col = "C"
Dim Rw As Long: Rw = 4

With ThisWorkbook.Sheets("Calculation")
    Debug.Print "=IF(" & Col & Rw & "=""-"",""-"",Cars!" & Col & Rw & "*" & Col & Rw & "*Data!$C)"
    .Cells(Rw + 1, Col).Formula = "=IF(" & Col & Rw & "=""-"",""-"",Cars!" & Col & Rw & "*" & Col & Rw & "*Data!$C)"
End With

End Sub

所以您可能很容易忘记的是在 VBA 编程公式中使用 , 作为参数定界符。当您将它放在 sheet 上时,Excel 会自动将其替换为适合您所在地区的分隔符。

还有一点要记住;每当您要在此类函数中使用字符串值时,请不要忘记将其用双引号引起来!

不要忘记删除 Debug.print .... 行。它只是用来显示输出:)