【发布时间】:2017-08-18 14:31:13
【问题描述】:
我有一个comboBox 与一些数据透视表在同一张纸上。 comboBox 根据所选内容更新数据透视表过滤器。
问题是,当数据透视表刷新(设置新过滤器)时,它会激活组合框_clickfunction,开始一个循环。
有没有办法解决这个问题?为什么数据透视表刷新会激活组合框?
这是 _Click 事件中的代码:
Private Sub cmb_SkuSelect_Click()
Dim xlSheetSort As Worksheet
Dim lastRow As Long
Dim xlCell As Range
Dim skuValue As Integer
Set xlSheetSort = ActiveWorkbook.Worksheets("Sort")
lastRow = xlSheetSort.Range("A1").End(xlDown).Row
With xlSheetSort.Range("B1:B" & lastRow)
Set xlCell = .Find(cmb_SkuSelect.Value, LookIn:=xlValues)
If Not xlCell Is Nothing Then
skuValue = xlSheetSort.Range("A" & xlCell.Row).Value
End If
End With
updatePivot skuValue
End Sub
更新枢轴:
Public Sub updatePivot(ByVal sku As Integer)
Dim pt As PivotTable
Dim pt2 As PivotTable
Dim Field As PivotField
Dim Field2 As PivotField
Dim newSku As String
Set pt = Worksheets("Sku Inventory").PivotTables("SkuInfo")
Set Field = pt.PivotFields("Sku Number")
Set pt2 = Worksheets("Sku Inventory").PivotTables("InventoryInfo")
Set Field2 = pt2.PivotFields("Sku Number")
newSku = sku
With pt
Field.CurrentPage = newSku
pt.RefreshTable
End With
With pt2
Field2.CurrentPage = newSku
pt2.RefreshTable
End With
End Sub
【问题讨论】:
-
updatePivot在做什么? -
它正在使用传递给它的 SKU 更新工作表上的 2 个数据透视表。我会用代码更新原件。
标签: vba excel combobox excel-2013