Excel 在一台机器上运行时错误1004,但在另一台机器上没有
我对宏不太熟悉,也不明白为什么我在网络上的所有其他机器上都出现运行时错误1004,但在我的机器上却没有?我已经在我的电脑上创建了该文件。 代码如下:Excel 在一台机器上运行时错误1004,但在另一台机器上没有,excel,vba,Excel,Vba,我对宏不太熟悉,也不明白为什么我在网络上的所有其他机器上都出现运行时错误1004,但在我的机器上却没有?我已经在我的电脑上创建了该文件。 代码如下: Sub CustomerDetailed() ' Dim sheetName As String sheetName = "Sales Customer Detailed Report" ShowSheets (sheetName) Sheets("SageWinman").Range("H2").ListObj
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
此错误通常意味着某些命名范围/单元格不存在 因此,在有问题的行中,如果此工作表不存在,则可以是SheetsAgeWinman元素;如果excel的单元格命名参数设置为数字参考而不是字母,则可以是Range2 检查参考样式模式:工具/选项/常规/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驱动程序,并且在他们的机器上设置了SageWinman表。正如我所提到的-这个宏在我的机器上运行良好,但在其他机器上运行不好…您是否尝试将该行拆分为几个较小的部分以确定错误的精确来源?我明白您的意思。是,它在第行给出错误:r.ListObject.QueryTable.Refresh BackgroundQuery:=False您的操作系统和excel版本是什么?您是否检查了区域设置是否相同?