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并从任务管理器进程中删除它呢?
答案 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"
。
我希望这会有所帮助。你有没有得到一段代码吗?