Eu adicionei três linhas ao seu código. Eles verificam se sua seleção / intervalo está vazia e, em seguida, sair do sub em caso afirmativo. Você precisa executar este código e talvez remover a declaração if que você já adicionou ( .Value
não faz muito sentido para mim). Além disso, você precisa verificar qual if-statement que eu adicionei resolve o erro original que você mencionou primeiro em sua pergunta (provavelmente você acabará tendo apenas o terceiro).
Sheets("Celkový harmonogram").Select
ActiveWorkbook.SlicerCaches("Průřez_dispečer32111").ClearManualFilter
Range("Tabulka141121518[13]").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
'This is the part added (if you get the error in the following lines):
If Application.CountIf(Selection, "<>0") < 1 Then Exit Sub
'This will exit the sub; you can also "GoTo" a line as error handler or _
'Skip one step of a loop as you mentioned you are doing this for number of columns.
With ActiveWorkbook.SlicerCaches("Průřez_dispečer32111")
.SlicerItems("Bodnariucová Renáta").Selected = False
.SlicerItems("Kajer Roman").Selected = True
End With
'Also this cause it's not clear where you exactly get the error:
If Application.CountIf(Selection, "<>0") < 1 Then Exit Sub
'OR
If Application.CountIf(Sheets("Celkový harmonogram").Range("Tabulka141121518[13]") _
, "<>0") < 1 Then Exit Sub
If Sheets("Celkový harmonogram").Range("Tabulka141121518[13]").Value <> "" Then
Application.CutCopyMode = False
Selection.Copy
Sheets("jednotlivci").Select
Range("Y6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Em vez de Exit Sub
, você pode ir para outra linha como esta:
If Criteria Then
isError = True
GoTo ErrorHandler
End If
'Rest of the code in case of no error
'...
ErrorHandler:
If IsError Then
'Code you want to be performed in case of error
End If
Aviso: A segunda instrução if é adicionada para evitar a execução do manipulador de erros em caso de nenhum erro (o VBA executa tudo e não ignora o bloco ErrorHandler).