各位老师: 我试着又更改了一下代码, 但是运行的速度比手工在数据透视表的筛选键的选择要慢的得多,因程序要每条数据进行重新计算,用录制宏方法,亦无法找到相关的代码. 特请老师们指点. 希望有高手能不吝赐教!!!! Sub 查询批号2() Dim a As Integer box = InputBox("请输入要查询的批号") If box = "" Then Exit Sub Application.ScreenUpdating = False Sheets("生产进度总表").Activate Dim n With Sheets("生产进度总表").PivotTables("数据透视表1") For a = 1 To .PivotFields("批号").pivotitems.Count If .PivotFields("批号").pivotitems(a).Name = box Then If .PivotFields("批号").pivotitems(a).Visible = False Then .PivotFields("批号").pivotitems(a).Visible = True n = n + 1 Else On Error Resume Next If .PivotFields("批号").pivotitems(a).Visible = True Then .PivotFields("批号").pivotitems(a).Visible = False If Err.Number = 1004 Then h = a End If Next .PivotFields("批号").pivotitems(h).Visible = False End With If n = 0 Then MsgBox "你所输入的批号不存在" Application.ScreenUpdating = True End Sub |