не нашел никакого ответа в сети, поэтому мы идем:
Я пытаюсь найти способ выйти из оператора if до того, как будет выполнен подсчет i для слайсеров.
Допустим, у меня есть 2 слайсера: а) страна и б) регионы.Когда выбрана страна, можно выбрать только несколько регионов, которые я затем экспортирую по одному.
[...]
With ActiveWorkbook.SlicerCaches("Slicer_Region")
'[.... something with i=1 which is different]
For i = 2 To .SlicerItems.Count
If Cells(41, 3).Value <> "" Then
.SlicerItems(i).Selected = True
.SlicerItems(i - 1).Selected = False
Name = .SlicerItems(i).Name
strFName = "Region " & Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strPath & strFName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Else:
' End If
' GoTo goout
End If
Next i
'goout:
End With
[...]
Условие If Cells(41, 3).Value <> ""
проверяет наличие данных в сводной таблице - это будетпервый ряд с данными.Тем самым я избегаю экспорта пустых регионов.Тем не менее, цикл все равно будет продолжаться для каждого региона, даже если это невозможно (не в стране, которая уже выбрана).
Как только появится один «пустой регион», все последующие будут пустыми какхорошо (поскольку слайсеры показывают заполненные в первую очередь).Поэтому, как только условие переходит в пустое Cells(41, 3).Value <> ""
, я бы хотел, чтобы оно вышло из цикла, потому что оно просто занимает время впустую.
Я не знаю, как это сделать, то, как это здесь в коде, выдает мне ошибку: «endif без блока if» - что имеет смысл