此代码行导致编译错误:语法错误 我不知道我必须改变什么。它可以与其他公式配合使用,所以我认为这可能与公式有关。
Range("O2:O" & LastRow).Formula = "=WENN(Q2="";"";WENN(H2*7*Q2<L2;"Möglich";"Prüfen"))"
感谢您的帮助和建议
我的整个代码:
Columns("A:M").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("N2").Select
Range("P2:P240023").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("N3").Select
Range("N3:O24023").Select
Selection.ClearContents
Range("N2:O2").Select
Selection.AutoFill Destination:=Range("N2:O24023")
Range("N2:O240023").Select
Columns("A:O").Select
Columns("A:O").EntireColumn.AutoFit
Range("C:C,J:J,K:K,M:M").Select
Range("M1").Activate
Selection.EntireColumn.Hidden = True
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Range("O2:O" & LastRow).Formula = "=WENN(Q2="";"";WENN(H2*7*Q2<L2;"Möglich";"Prüfen"))"
答案 0 :(得分:3)
问题是公式的第一部分引号"
不够,导致字符串不终止。尝试像这样更改代码:
Range("O2:O" & lastRow).Formula = "=IF(Q2="""","""",IF(H2*7*Q2<L2,""Möglich"",""Prüfen""))"
或者如果您想保留本地语言公式,则这样:
Range("O2:O" & lastRow).FormulaLocal = "=WENN(Q2="""";"""";WENN(H2*7*Q2<L2;""Möglich"";""Prüfen""))"
希望有帮助。
答案 1 :(得分:0)
使用公式时,“”(空)应为“””,“测试”应为““测试””
更改此:
Range("O2:O" & LastRow).Formula = "=WENN(Q2="";"";WENN(H2*7*Q2<L2;"Möglich";"Prüfen"))"
对此:
Sheet1.Range("O2:O" & LastRow).Formula = "=WENN(Q2="""";"""";WENN(H2*7*Q2<L2,""Möglich"",""Prüfen""))"
如果需要,还可以将 “;” 更改为 “,” (取决于Excel版本)。< / p>
完整代码:
Option Explicit
Sub test()
Dim LastRow As Long
With ThisWorkbook.Worksheets("Sheet1") '<- Change sheet name if needed
LastRow = .Cells(.Rows.Count, "O").End(xlUp).Row '<- Change column lf needed. Have in mind that because Lastrow is in the with statement, Lastrow calculation related with the sheet in the with statemet
.Columns("A:M").Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.Range("N3:O24023,P2:P240023").ClearContents '<- ClearContents clear only Contents . if you want to clear everything use .Clear
.Range("N2:O2").AutoFill Destination:=Range("N2:O24023")
.Columns("A:O").EntireColumn.AutoFit
.Range("C:C,J:J,K:K,M:M").EntireColumn.Hidden = True
Rows("2:2").Select
ActiveWindow.FreezePanes = True
.Range("O2:O" & LastRow).Formula = "=IF(Q2="""",IF((H2*7*Q2)<L2,""Möglich"",""Prüfen""))"
End With
End Sub