我得到运行时错误462

时间:2010-09-03 11:30:54

标签: excel ms-access vba

HI,

我在Access中有以下代码。

Dim objSht As excel.Worksheet
Dim objexcel As New excel.Application
Dim wbexcel As excel.Workbook
Dim wbExists As Boolean
Dim objRange As excel.Range
Dim isFileAlreadyPresent As Boolean

Set objexcel = CreateObject("excel.Application")

Set wbexcel = objexcel.Workbooks.Open(file_name)
Set objSht = wbexcel.Worksheets(table_name)
isFileAlreadyPresent = True

objSht.Activate
objSht.Range(Range_para).Select
Charts.Add
ActiveChart.chartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets(table_name).Range(Range_para), _
                            PlotBy:= xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveChart.HasLegend = False

With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.text = CHart_title
    .Axes(xlCategory, xlPrimary).HasTitle = False
    .Axes(xlValue, xlPrimary).HasTitle = False
End With

If isFileAlreadyPresent = True Then
    wbexcel.Save
Else
    wbexcel.SaveAs (file_name)
End If
objexcel.Visible = True
wbexcel.Close

我有两个问题。每次运行代码时,我都会在Charts.add行遇到运行时错误462(远程服务器机器不存在或不可用)。

我知道我没有正确使用objexcel属性,但我不确定我哪里出错了。

代码运行后,即使excel关闭。该过程在后台运行,这会干扰下一次运行代码。如何关闭excel并从任务管理器进程中删除它呢?

3 个答案:

答案 0 :(得分:1)

我认为你需要像这样创建图表对象,因为你使用后期绑定它不会知道“图表”是什么,除非你从父对象调用它。

objexcel.Charts.Add

错误462通常意味着某些东西不合格,即使该消息有点神秘。

答案 1 :(得分:0)

正如快速修复一样,尝试在代码末尾设置您声明/使用的所有内容,以确保没有任何内容保持打开或处于活动状态。

Set objSht = Nothing

如果能解决问题,请告诉我

答案 2 :(得分:0)

正如你的问题

  

如何关闭excel并摆脱它   从任务管理器进程也??

只要您没有从Excel以外的其他应用程序运行子命令,您应该能够在代码末尾使用Application.Quit命令。或者,您应该能够执行objexcel.Quit命令。另一种替代方法是将其委托给shell命令:Shell "taskkill /f /im excel.exe"

我希望这会有所帮助。你有没有得到一段代码吗?