在网络上找不到任何答案,所以我们去了:
我试图找到一种方法来在切片器的i计数完成之前退出if语句。
假设我有2个切片器:a)国家和b)地区。选择一个国家/地区后,只有几个区域可以选择,然后我一个接一个地导出。
[...]
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”-这很有意义