Excel VBA: как пропустить строку, если значение не совпадает - PullRequest
0 голосов
/ 08 апреля 2020

У меня проблема в Пропустить указанную c Строковую команду.

Если сравнение значений True выполнить строку, тогда сравнение false означает пропуск строки и переход к следующей строке.

Когда я запускаю код, я получаю сообщение об ошибке

Объект определен - Ошибка выполнения 1004

Пожалуйста, помогите мне с этой проблемой

 If Sheets("Group").Range("F:F" = "Numbers") Then 'Value comparison
    GoTo Numbers 'Current Call function
    Else: GoTo Text 'Next Call function
    End If

    Numbers:
    DoEvents
    Call Numbers 'If number based serial call it
    Text:
    DoEvents
    Call Text 'If Text based serial call it

Мой скриншот:

enter image description here

См. Мой полный макрос

Sub Bass()
Application.ScreenUpdating = False
DoEvents
Call Groupit 'Category All Serial


If Sheets("Group").Range("F:F" = "Numbers") Then
GoTo Numbers
Else: GoTo Text
End If

If Sheets("Group").Range("F:F" = "Text") Then
GoTo Text
Else: GoTo withK
End If

If Sheets("Group1").Range("E:E" = "*K*") Then
GoTo withK
Else: GoTo withoutK
End If

If Sheets("Group1").Range("E:E" <> "*K*") Then
GoTo withoutK
Else: GoTo Lastln
End If

'Bookmarks
Numbers:
DoEvents
Call Numbers 'If number based serial call it
Text:
DoEvents
Call Text 'If Text based serial call it
withK:
DoEvents
Call BothwithK 'If K based serial call it
withoutK:
DoEvents
Call BothwithoutK 'If not"K" based serial call it
Lastln:
DoEvents
Application.ScreenUpdating = True

End Sub

1 Ответ

1 голос
/ 08 апреля 2020

Используйте forech l oop с некоторыми операторами выбора.

Sub Bass()
Application.ScreenUpdating = False
DoEvents

Dim rngF As Range: Set rngF = Range("F:F")
Dim rngE As Range: Set rngE = Range("E:E")
Dim countNumbers As Integer, countText As Integer, countWithK As Integer, countWithoutK As intteger
countNumbers = 0
countText = 0
countWithK = 0
countWithoutK = 0
For Each cell In rngF
    Select Case cell.Value
        Case "Numbers"
            countNumbers = countNumbers + 1
        Case "Text"
            countText = countText + 1
        Case "*K*"
            countWithK = countWithK + 1
        Case Else
        ' SomethingElse
    End Select
Next cell

If countNumbers > 0 Then
    Call NumbersSub
End If

If countText > 0 Then
    Call TextSub
End If

If countWithK > 0 Then
    Call countWithK
End If

countWithK = 0

For Each cell In rngE
    Select Case cell.Value
        Case "*K*"
            countWithK = countWithK + 1
        Case "*"
            countWithoutK = countWithoutK + 1
        Case Else
           'SomethingElse
    End Select
Next cell

If countWithK > 0 Then
    Call withK
End If
If countWithoutK > 0 Then
    Call withoutK
End If

MsgBox "Done"
End Sub

Sub NumbersSub()
MsgBox "Number found"
End Sub
Sub TextSub()
MsgBox "Text found"
End Sub
Sub withK()
MsgBox "Text with K found"
End Sub
Sub withoutK()
MsgBox "Text without K found"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...