【问题标题】:Run Time Error 5 - Invalid Procedure Call or Argument运行时错误 5 - 无效的过程调用或参数
【发布时间】:2022-04-26 21:30:53
【问题描述】:

我需要有关此宏的帮助。每次我运行它时,我都会收到以下错误。我认为这是一个简单的宏,我可以让团队中的任何人使用它来缩短他们每次运行报表时手动创建此数据透视表所花费的时间。但是,它不起作用。请参阅下面的错误并提出建议。我将错误加粗并用斜体表示。

Sub LEDOTTR()
'
' LEDOTTR Macro
'

'
    Range("A87").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ***ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet1!R87C1:R8214C25", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="LED OTTR!R1C1", TableName:="PivotTable6", _
        DefaultVersion:=xlPivotTableVersion14***
    Sheets("LED OTTR").Select
    Cells(1, 1).Select
    With ActiveSheet.PivotTables("PivotTable6").PivotFields("LED")
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("PivotTable6").PivotFields("Hierarchy name")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable6").PivotFields("LED").CurrentPage = "(All)"
    With ActiveSheet.PivotTables("PivotTable6").PivotFields("LED")
        .PivotItems("LED Marine").Visible = False
        .PivotItems("LL48 Linear LED").Visible = False
        .PivotItems("Other").Visible = False
    End With
    ActiveSheet.PivotTables("PivotTable6").PivotFields("LED"). _
        EnableMultiplePageItems = True
    ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _
        "PivotTable6").PivotFields("   Late " & Chr(10) & "Indicator"), "Sum of    Late " & Chr(10) & "Indicator", _
        xlSum
    ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _
        "PivotTable6").PivotFields("Early /Ontime" & Chr(10) & "   Indicator"), _
        "Sum of Early /Ontime" & Chr(10) & "   Indicator", xlSum
End Sub

【问题讨论】:

  • 看起来您在为表提供一个固定值的名称时可能会遇到问题。您将其称为PivotTable6,但该名称仅在您第一次创建数据透视表时可用。在那之后,你会发生冲突。

标签: vba excel runtime-error


【解决方案1】:

您的问题的答案是located here

TableDestination:="LED OTTR!R1C1" 中的工作表名称需要用单引号括起来才能正常工作TableDestination:="'LED OTTR'!R1C1"

如果您在重新运行代码之前不删除此数据透视表,也会遇到重复名称的问题。

【讨论】:

  • 快速Google 也会找到答案。该链接是第一个结果。奇怪的是,他们经历了与我查看重复名称相同的进程。作为参考,重复的名称给出了 1004 错误。
  • @user3067028,很高兴听到。请标记为答案(在投票按钮下检查),以便其他人知道它已解决。帮助我们所有人。
【解决方案2】:

在我的情况下,问题与 Windows 中的区域设置有关。我从 Internet 下载了一个(受保护的)xlsm 文件,打开它时总是出现“运行时错误 5 - 无效的过程调用或参数”错误。另一个答案向我暗示,这可能与语言设置有关。文件中的脚本显然是用德语编写的,而我的 Windows 设置为英语区域。

在 Windows 10 Settings > Time & Language > Region 中,我将 RegionRegional format 更改为德语。重新启动 Excel 后,该文件工作。

【讨论】:

    【解决方案3】:

    我遇到了这个问题,错误是由于在隐藏的工作表上调用Worksheet.ExportAsFixedFormat 方法引起的。

    我刚刚将if worksheet.Visible Then 条件添加到我的代码中,以防止出现Invalid Procedure Call or Argument 错误。

    【讨论】:

      【解决方案4】:

      在将宏文件安装到 excel 2016 功能区窗口时,当我调试错误时出现错误。单击调试时,以下部分以黄色突出显示

      设置一 = Application.CommandBars("工作表菜单栏").Controls.Add(Type:= _ msoControlPopup, before:=onecount)

      【讨论】:

      • 只是为了添加更多信息......这个相同的宏文件可以在 Office 2010 上正常工作。
      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 2022-10-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多