我在互联网上搜索,没有任何帮助... 我只是希望能够使用我的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” 谁能告诉我该怎么做?
谢谢!
答案 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会自动将其替换为适合您所在地区的定界符。
另一件事要牢记;每当您要在此类函数中使用字符串值时,请不要忘记将其用双引号引起来!
不要忘记删除Debug.print ....
行。它只是在那里显示输出:)