如何通过VBA在具有特殊字符(如“-”或“ $”)的单元格中插入公式?

时间:2019-08-09 10:11:00

标签: excel vba cell formula

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

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

您猜到了,有一个名为“汽车”的页面和一个名为“数据”的页面,我可以在其中选择所需的信息。

当然,因为它是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':Type Mismatch” 谁能告诉我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试以下操作,假设column变量是字符串,而row是long变量。我可能没有所有的变量都正确,但是您可以在这里得到我想要做的事情。

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$8)"
    .Cells(Rw + 1, Col).Formula = "=IF(" & Col & Rw & "=""-"",""-"",Cars!" & Col & Rw & "*" & Col & Rw & "*Data!$C$8)"
End With

End Sub

因此,您可能容易忘记的是在VBA编程公式中使用,作为参数定界符。将其放在表格上时,Excel会自动将其替换为适合您所在地区的定界符。

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

enter image description here

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