【发布时间】:2015-04-11 22:28:54
【问题描述】:
我记录了一个没有任何问题的 VBA 代码,但是现在当我尝试使用具有相同数据的 VBA 代码时,我得到了这个编译错误:
syntax error在IF和OR公式中。
我认为代码的长度是导致错误的原因。
这是我在录音时写的公式:
=IF(OR(B20="(结果数 = 1)",B19="(结果数 = 1)",B18="(结果数 = 1)",B17="(结果数结果 = 1)",B16="(结果数 = 1)",B15="(结果数 = 1)",B14="(结果数 = 1)",B13="(结果数 = 1)",B12="(结果数 = 1)",B11="(结果数 = 1)",B10="(结果数 = 1)",B9="(结果数 = 1)",B8="(结果数 = 1)",B7="(结果数 = 1)",B6="(结果数 = 1)",B5="(结果数 = 1)",B4="(结果数 = 1)",B3="(结果数 = 1)",B2="(结果数 = 1)"),"True","F")
这是记录代码的一部分(它是一个很长的 VBA 代码,所以我只是复制了上面突出显示的有问题的部分(黄色)。
ActiveWindow.ScrollRow = 1
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B33").Select
Columns("A:A").ColumnWidth = 26
ActiveWindow.SmallScroll Down:=-63
Range("A1").Select
Application.FormulaBarHeight = 7
ActiveCell.FormulaR1C1 = _
"=IF(OR(R[19]C[1]=""(Number of Results = 1)"",R[18]C[1]=""(Number of Results = 1)"",R[17]C[1]=""(Number of Results = 1)"",R[16]C[1]=""(Number of Results = 1)"",R[15]C[1]=""(Number of Results = 1)"",R[14]C[1]=""(Number of Results = 1)"",R[13]C[1]=""(Number of Results = 1)"",R[12]C[1]=""(Number of Results = 1)"",R[11]C[1]=""(Number of Results = 1)"",R[10]C[1]=""(Number"& _
"lts = 1)"",R[9]C[1]=""(Number of Results = 1)"",R[8]C[1]=""(Number of Results = 1)"",R[7]C[1]=""(Number of Results = 1)"",R[6]C[1]=""(Number of Results = 1)"",R[5]C[1]=""(Number of Results = 1)"",R[4]C[1]=""(Number of Results = 1)"",R[3]C[1]=""(Number of Results = 1)"",R[2]C[1]=""(Number of Results = 1)"",R[1]C[1]=""(Number of Results = 1)""),""True"",""F"")""& _
"k
Range("A2").Select
Application.FormulaBarHeight = 1
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:A202")
Range("A1:A202").Select
【问题讨论】:
-
是的,我可以看到语法错误?你到底想做什么?或者你能用宏记录器给你的确切代码更新问题吗?
-
代码最后一行的
"k是什么? -
我正在尝试使用 IF 和 OR 公式来过滤并仅在单元格中的值为(结果数 = 1)时才给出特定值,并且当我使用它时它工作正常,但是当我记录它并用它给我这个错误的相同数据尝试它,当我检查 VBA 中记录的宏时,公式有差异。