【发布时间】:2016-02-10 12:19:27
【问题描述】:
我是 VBA 新手,我正在编写此宏以从数据透视表中获取值并将它们存储在数据透视表附近的单元格中。 问题是当在数据透视表中找不到选择函数中写入的任何值时,它显示应用程序定义或对象定义的错误,我无法从选择中删除字段,因为该值可以在将来更新数据透视表时出现。
在这方面的任何帮助将不胜感激。
For i = 1 To 8
Set rng = Intersect(pt.PivotFields("Category").PivotItems("Technical").DataRange.EntireRow, _
pt.PivotFields("Office").PivotItems(Choose(i, "Mum", "blore", "chen", "delhi", "chandigarh", "hyd", "pune", "noida")) _
.DataRange.EntireRow, pt.PivotFields("Total").DataRange)
If rng Is Nothing Then
Else
Worksheets(6).Range(Choose(i, "AF29", "AF23", "AF24", "AF25", "AF30", "AF26", "AF27", "AF28")).value = CInt(WorksheetFunction.Percentile(rng, 0.95))
End If
Next i
【问题讨论】:
-
实际上 Choose() 不会导致您的代码出现任何错误。因为 Loop 将从 1 变为 8,并且 Choose() 将检索该关联循环计数器的相关单元格引用。
-
但是在某些情况下该数据透视表中不存在值,当找不到该值时如何跳过循环。或者还有其他方法吗?