Ошибка компиляции: синтаксическая ошибка, вызванная вставкой кода в формулу Excel - PullRequest
0 голосов
/ 04 апреля 2019

Эта строка кода вызывает ошибку компиляции: синтаксическая ошибка. Я не могу понять, что мне нужно изменить.Он отлично работает с другими формулами, поэтому я думаю, что это может быть что-то о формуле.

  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"))"

Ответы [ 2 ]

3 голосов
/ 04 апреля 2019

Проблема в том, что в первой части формулы не хватает кавычек ", из-за чего строка не заканчивается.Попробуйте изменить код следующим образом:

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""))"

Надеюсь, это поможет.

0 голосов
/ 04 апреля 2019

При использовании формул "" (Пусто) должно быть "" "", а "тест" должно быть "" тест ""

Изменить это:

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).

Полный код:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...