因此,由于这段代码没有太多内容,因此可能不会很长。基本上,我正在创建一个代码,该代码将根据条件将字符串(看起来像countifs公式)打印到单元格中。
在第一种情况下,所有方法都可以正常工作,但是当我进入else语句时,我得到
运行时错误“ 1004”:应用程序定义的r对象定义的错误。
Sub SetCriteria()
If Sheet1.Range("E3").Value = 1 Then
Sheet8.Range("F3") = "=COUNTIFS(Tank!G6:Tank!G1000,Dashboard!C6"
Else: Sheet8.Range("F3") = "=COUNTIFS(Tank!G6:Tank!G1000,""*"""
End If
End Sub
我要给单元格F3填充两个文本中的任何一个,具体取决于工作表E3单元格E3中的内容。
答案 0 :(得分:0)
在我看来,您的代码中缺少“括号结尾”。试试:
Sub SetCriteria()
If Sheet1.Range("E3").Value = 1 Then
Sheet8.Range("F3") = "=COUNTIFS(Tank!G6:Tank!G1000,Dashboard!C6" & ")"
Else: Sheet8.Range("F3") = "=COUNTIFS(Tank!G6:Tank!G1000,""*""" & ")"
End If
End Sub
答案 1 :(得分:0)
& ")"
。Range.Formula
来设置公式。If … Else … End If
语法。Tank!
。例如,Tank!G6:Tank!G1000
应该为Tank!G6:G1000
。最后,您的代码应如下所示:
Sub SetCriteria()
If Sheet1.Range("E3").Value = 1 Then
Sheet8.Range("F3").Formula = "=COUNTIFS(Tank!G6:G1000,Dashboard!C6" & ")"
Else
Sheet8.Range("F3").Formula = "=COUNTIFS(Tank!G6:G1000,""*""" & ")"
End If
End Sub
如果要将公式粘贴为文本,请使用以下内容:
Sub SetCriteria()
If Sheet1.Range("E3").Value = 1 Then
Sheet8.Range("F3").Value = "'=COUNTIFS(Tank!G6:G1000,Dashboard!C6" & ")"
Else
Sheet8.Range("F3").Value = "'=COUNTIFS(Tank!G6:G1000,""*""" & ")"
End If
End Sub
请注意,公式现在必须以'
开头,才能告诉Excel它是字符串而不是公式。不用担心,Excel稍后不会显示'
。