首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA运行时错误-2147319767 (80028029)

VBA运行时错误-2147319767 (80028029)
EN

Stack Overflow用户
提问于 2019-04-11 13:41:48
回答 1查看 4.5K关注 0票数 1

我的Excel文件/VBA代码有问题。我正在更新许多Excel文件(复制/粘贴到表格中),并更新这些文件中的透视表。我已经使用这个代码/方法很多年了,它一直运行得很好。

但最近我的文件在运行VBA后表现得很奇怪。当更新35个excel文件时,大约有15个文件在更新后被“损坏”。我可以打开它们,但我不能储存。然后文件就会被关闭。

因此,我将行"Application.DisplayAlerts = False“更改为"True",然后再次运行。这次VBA停止显示:运行时错误'-2147319767 (80028029):自动化错误。它指向这条线:

代码语言:javascript
运行
复制
For Each pt In sh_ske_beløp.PivotTables

这只是我用完全相同的方式更新的12个工作表中的一个(整个代码如下所示):

代码语言:javascript
运行
复制
For Each pt In sh_ske_beløp.PivotTables
pt.RefreshTable
Next pt

我完全迷路了!这一小段代码应该是轻而易举的!我就是搞不明白出了什么问题。我在顶部执行“选项显式”-bit,没有任何错误。我没有做任何高级的事情,只是打开文件,在工作簿/工作表之间复制/粘贴数据,以及更新数据透视表。这里没有“用户表单”。Tools/References菜单中没有任何内容是“丢失”的。该代码使用Excel 365 64位在Windows 10 64位上运行。所有可用的更新都已安装。

EN

回答 1

Stack Overflow用户

发布于 2019-04-11 13:59:57

ThisWorkbook.Worksheets("sh_ske_beløp").PivotTables

尝试运行此代码

代码语言:javascript
运行
复制
Sub test()
Dim sht As Worksheet
Dim wb As Workbook
Dim shtName As String
Dim pt As PivotTable
Set wb = ThisWorkbook
shtName = "sh_ske_beløp"
For Each sht In wb.Worksheets
    If sht.Name = shtName Then
        For Each pt In sht.PivotTables
            pt.RefreshTable
        Next pt
    End If
Next sht
If Not wsExists(shtName, wb) Then MsgBox shtName & " NotExist!!!"
End Sub

Function wsExists(wsName As String, wb As Workbook) As Boolean
Dim ws
    For Each ws In wb.Sheets
        wsExists = (wsName = ws.Name): If wsExists Then Exit Function
    Next ws
End Function

VBA变量

变量是存储在计算机内存或存储系统中的特定值。稍后,您可以在代码中使用该值并执行。计算机将从系统中获取该值并显示在输出中。必须为每个变量指定一个名称。

要在VBA中命名变量,需要遵循以下规则。

Unicode必须少于255个字符

  • 不允许有空格

  • 不能以number

  • Period开头不允许使用

  • 不允许使用

  • 不允许使用Unicode
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55625444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档