【发布时间】:2018-05-18 20:46:44
【问题描述】:
我在“主要”工作表中有一个数据透视表。在PivotField“报告过滤器”中,我有“国家代码”,其中包含 200 个国家/地区。我想使用 InputBox 从该过滤器中显示超过 1 个国家/地区。
问题是我需要在过滤器中手动选择至少一个国家或所有国家并运行此程序。我无法通过这样做获得正确的数据。 我需要取消选择所有国家,然后我需要运行。
我的代码
Sub Addcountries()
Dim ws As Worksheet
Dim str1 As Variant
Dim Data As Variant
Dim pf As PivotField
Dim target As PivotTable
Set ws = Sheets("Main")
str1 = Application.InputBox("Enter the Country - comma separated")
If str1 = False Then
MsgBox "Please Enter one Country", , "Filter Country"
Exit Sub
Else
If InStr(1, str1, ",") > 0 Then
Data = Split(str1, ",")
For i = LBound(Data) To UBound(Data)
ws.PivotTables("MainTable").PivotFields("Country Code").PivotItems(Data(i)).Visible = True
Next i
Else
ws.PivotTables("MainTable").PivotFields("Country Code").PivotItems(str1).Visible = True
End If
End If
End Sub
【问题讨论】:
-
不确定我是否理解,您是否收到此代码错误?还是您缺少某个功能?
-
我认为问题在于他在输入框中使用的数据。
Pivot Table使用来自 excel 而不是手动输入的实际参考值。 @Deepak:您是否尝试过使用 excel 作为输入项? -
@shai 我没有收到错误。我需要改进这段代码。我需要删除过滤器中的所有项目。
-
@Deepak 你需要保留一个,否则你会得到一个错误,你想保留哪一个?
-
@shai 是的,你是对的。但我一开始不想选择 1。帮帮我
标签: vba excel excel-2010 pivot-table