繁体   English   中英

一台机器上出现运行时错误1004,而另一台机器上没有

[英]Runtime Error 1004 on one machine but not the other

我对宏不是很熟悉,也无法弄清楚为什么我在网络上的所有其他计算机上却没有在我的计算机上收到运行时错误1004? 我已经在PC上创建了文件。 这是代码:

Sub CustomerDetailed()
'
    Dim sheetName As String
    sheetName = "Sales Customer Detailed Report"

    ShowSheets (sheetName)

    Sheets("SageWinman").Range("H2").ListObject.QueryTable.Refresh BackgroundQuery:=False
    Sheets("Sales Customer Detailed Report").PivotTables("CustomerDetailed").PivotCache.Refresh
    Sheets("Sales Customer Detailed Report").Select
End Sub

它所做的一切-单击按钮即可打开隐藏的工作表,然后刷新数据透视表数据。 调试器指出了以下通道:

Sheets("SageWinman").Range("H2").ListObject.QueryTable.Refresh BackgroundQuery:=False

此错误意味着通常不存在某些命名范围/单元。

因此,在有问题的行上,如果此工作表不存在,则可以是Sheets(“ SageWinman”)元素;如果将excel的单元格命名参数设置为数字参考(而不是字母),则可以是Range(“ H2”)。

检查参考样式模式:工具/选项/常规/ R1C1参考样式

或者,要找到错误,请用以下内容替换该行:

Sub CustomerDetailed()

    Dim sheetName As String
    Dim thesheet as Worksheet
    Dim r As Range

    sheetName = "Sales Customer Detailed Report"

    ShowSheets (sheetName)

    Set thesheet  = Sheets("SageWinman")
    Set r = thesheet .Range("H2")

    r.ListObject.QueryTable.Refresh BackgroundQuery:=False
    Sheets("Sales Customer Detailed Report").PivotTables("CustomerDetailed").PivotCache.Refresh
    Sheets("Sales Customer Detailed Report").Select
End Sub

重新运行脚本; 如果失败,您应该更精确地确定在哪里。

我发现了-为什么

您必须使用自己的ODBC驱动程序来设置每个用户 -因此,在网络上-确保每个用户都有指向ur DB的ODBC驱动程序并在其计算机上进行设置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM