gpt4 book ai didi

vba - 调用应用程序时对象错误

转载 作者:行者123 更新时间:2023-12-04 18:33:53 26 4
gpt4 key购买 nike

我正在尝试在用户单击按钮时打开 Excel 文档。有多个按钮可以打开同一个文档,但如果文档已经打开而不是文档的另一个实例,我希望它更改工作表

Public objExcel As Object

Sub Main()
Set objExcel = CreateObject("Excel.Application")
End Sub

Public Sub QE1_Click()
Call Main
If objExcel Is Nothing Then
objExcel.Visible = True
objExcel.Workbooks.Open "H:\My Documents\Flowchart to Word\Quality and Environmental management system flowchart.xlsm"
objExcel.Worksheets("Project enquiry").Activate
Else
objExcel.Worksheets("Project enquiry").Activate
End If
End Sub


Public Sub QE2_Click()
Call Main
If objExcel Is Nothing Then
objExcel.Visible = True
objExcel.Workbooks.Open "H:\My Documents\Flowchart to Word\Quality and Environmental management system flowchart.xlsm"
objExcel.Worksheets("Order and project release").Activate
Else
objExcel.Worksheets("Order and project release").Activate
End If
End Sub

运行代码时出现错误:Application-defined or object-defined error

谁能指出导致错误的原因?

最佳答案

这里的代码:

Set objExcel = CreateObject("Excel.Application")

正在创建一个新的 Excel 应用程序。然后是这里:

objExcel.Worksheets("项目查询").Activate

已经假设新应用程序有一个名为 Project enquiry 的工作表,这不可能是真的。因此,您收到 1004 错误。优化您的业务逻辑,它应该会起作用。


通常,尝试删除此条件 If objExcel Is Nothing Then 因为 objExcel 永远不会是 Nothing,您正在调用 Main 为它分配对象。然后代码可能会工作。

关于vba - 调用应用程序时对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49854486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com