VBA Ошибка компиляции Синтаксическая ошибка Что не так? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть следующий код, и я продолжаю получать ошибки в той же строке. С .Range ("A18: bz18"). Поле автофильтра: = 78, критерии1: = "> 14"

Я пробовал разные вещи, и я не могу понять это правильно. Я очень новичок в VBA и не думаю, что полностью его понимаю, поэтому любая помощь будет признательна.

Заранее спасибо!

Dim ws As Worksheet
Dim writeRow As Long

Sheets("master").UsedRange.Offset(1).ClearContents    

Application.ScreenUpdating = False    

For Each ws In ThisWorkbook.Worksheets    

    If ws.Name <> "master" And ws.Name <> "BAF_MASTER" And ws.Name <> "Lookup_Sheet" And ws.Name <> "Front_Sheet" And ws.Name <> "COMMITTEE_MENU" And ws.Name <> "EFFECTS_OF_CONTROL" And ws.Name <> "BAF_GUIDE" And ws.Name <> "Strategy_Guide" And ws.Name <> "Master_Template" Then    

        writeRow = Sheets("master").Cells(Rows.count, "y").End(xlUp).Row + 1    

        With ws    
                    .AutoFilterMode = False        

                        With .Range("A18:bz18").AutoFilter Field:=78, Criteria1:=">14"    

                          .Offset(1).Copy Destination:=Sheets("master").Range("A" & writeRow)    
                        End With     

                    .AutoFilterMode = False    
        End With    
    End If    

Next ws    


Application.ScreenUpdating = True    

1 Ответ

0 голосов
/ 01 ноября 2018

Попробуйте:

Option Explicit

Sub test()

Dim ws As Worksheet
Dim writeRow As Long

Sheets("master").UsedRange.Offset(1).ClearContents

Application.ScreenUpdating = False

For Each ws In ThisWorkbook.Worksheets

    If (ws.Name <> "master") And _
        (ws.Name <> "BAF_MASTER") And _
        (ws.Name <> "Lookup_Sheet") And _
        (ws.Name <> "Front_Sheet") And _
        (ws.Name <> "COMMITTEE_MENU") And _
        (ws.Name <> "EFFECTS_OF_CONTROL") And _
        (ws.Name <> "BAF_GUIDE") And _
        (ws.Name <> "Strategy_Guide") And _
        (ws.Name <> "Master_Template") Then
        writeRow = Sheets("master").Cells(Rows.Count, "y").End(xlUp).Row + 1

        With ws
            .AutoFilterMode = False
            With .Range("A18:bz18")
                .AutoFilter Field:=78, Criteria1:=">14"
                .Offset(1).Copy Destination:=Sheets("master").Range("A" & writeRow)
            End With
            .AutoFilterMode = False
        End With

    End If

Next ws

Application.ScreenUpdating = True

End Sub

Также рекомендуется разделить ваши условия в коде if Statement.see.

...