宏仅在运行时错误462之前运行一次excel vba:远程服务器不存在或不可用

时间:2018-11-22 23:01:23

标签: excel vba

所以我在vba中有此代码,该代码可将数据从excel导出以进行访问。第一次运行,然后第二次运行,此方法运行正常,显示“运行时错误462:远程服务器不存在或不可用”。

但是,如果我要重新启动excel,则第一次似乎可以再次正常运行。我尝试了谷歌搜索解决方案,但是大多数人都说将任何对象设置为Nothing并清空变量,但仍然无法正常工作。

Object

下面的代码段是第二轮运行时似乎显示此错误的位置。任何帮助将非常感激。谢谢

hashCode()

1 个答案:

答案 0 :(得分:0)

我去了一种代码整理方法,该方法可以解决问题。 在即时窗口中从代码中断行检查每个对象也有帮助(例如,“?Currentdb.Name”返回什么)

1)VBA在对象声明的一部分中支持New,但是...(最好研究一下。从内存来看,它总是比较慢,因为vba必须重新检查对象是否已实例化。)

Dim acc As Access.Application: Set acc = New Access.Application

2a)限定您对CurrentDb的通话

acc.CurrentDb.TableDefs(myValue).Fields("F4").Properties!ColumnWidth = 2500
acc.CurrentDb.TableDefs(myValue).Fields("F7").Properties!ColumnWidth = 2500

2b)甚至更好的是,显式引用树中的每个对象[这将有助于行乞]

' add Reference to "Microsoft DAO 3.6 Object Library"
Dim db As DAO.Database
Dim tdf As DAO.TableDef

Set db = acc.CurrentDb
db.TableDefs.Refresh    ' CurrentDb should do this, but can't hurt
Set tdf = db.TableDefs(myValue)
With tdf
    .Fields("F4").Properties!ColumnWidth = 2500
    .Fields("F7").Properties!ColumnWidth = 2500
End With

Set tdf = Nothing
Set db = Nothing

我希望这会有所帮助, GraemeR