gpt4 book ai didi

VBA - GetPivotData - 无法捕获运行时错误 1004

转载 作者:行者123 更新时间:2023-12-03 07:47:43 27 4
gpt4 key购买 nike

我正在制定一个程序来选择数据透视表的一部分并发送该数据提取。

一切都很好,除了我一直有一个 运行时错误 1004 我无法捕捉( 避免它并继续循环 ),所以我的循环不能顺利工作......

这是有问题的部分:

    On Error GoTo 0
On Error GoTo NextSale
If IsError(pt.GetPivotData("Amount", Pf.Name, Pi.Name, "Sales_Opp", PiO.Name)) Then GoTo NextSale
Set Rg = pt.GetPivotData("Amount", Pf.Name, Pi.Name, "Sales_Opp", PiO.Name)
On Error GoTo 0

Set RgT = Union(RgT, Rg)
NextSale:

因为 pt.GetPivotData("Amount", Pf.Name, Pi.Name, "Sales_Opp", PiO.Name)将抛出 运行时错误 1004 ,当数据中不存在组合时,我只想避免在循环中被阻塞。

我搜索了但没有设法解决这个问题... IsError()On Error GoTo不起作用。我什至检查了选项(工具->选项->常规->错误捕获),我已经在 Break on Unhandled Errors上。 ...

这是完整的代码:
Sub testPt()
Dim Pt As PivotTable, _
Pf As PivotField, _
Pi As PivotItem, _
PiO As PivotItem, _
Ws As Worksheet, _
TpStr As String, _
RgT As Range, _
Rg As Range

Set Ws = ThisWorkbook.Sheets("PT_All")

For Each Pt In Ws.PivotTables
For Each Pf In Pt.PivotFields
If Pf.Name <> "Sales" Then
Else
For Each Pi In Pf.PivotItems
Set RgT = Pi.LabelRange
For Each PiO In Pt.PivotFields("Sales_Opp").PivotItems

On Error GoTo 0
On Error GoTo NextSale
If IsError(Pt.GetPivotData("Amount", Pf.Name, Pi.Name, "Sales_Opp", PiO.Name)) Then GoTo NextSale
Set Rg = Pt.GetPivotData("Amount", Pf.Name, Pi.Name, "Sales_Opp", PiO.Name)
On Error GoTo 0

Set RgT = Union(RgT, Rg)
NextSale:
Next PiO
RgT.Select
MsgBox RgT.Address
Next Pi
End If
Next Pf
Next Pt

End Sub

最佳答案

我有一种感觉,虽然是例行程序,但它第二次失败了,而不是第一次。
它已成功捕获第一个错误,但由于没有 Resume xxxxxx声明,当它遇到下一个错误时,它仍在尝试进行错误处理。不允许嵌套错误处理,因此会出错。

摆脱On Error Goto 0行,并更改剩余的 On Error

On Error GoTo Err_Handlr

然后,就在 End Sub 之前,添加以下内容:
Unexpected_Err:
Exit Sub

Err_Handlr:
If err.number=1004
Resume NextSale
Else
Msgbox "Can't handle " & err.description
Resume Unexpected_Err
end if

请注意,我正在寻找预期的错误编号 - 这意味着如果其他一些部分发生故障,我至少可以了解它,而不是通过任何其他可能发生的副作用而失控

关于VBA - GetPivotData - 无法捕获运行时错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com