【发布时间】:2011-01-14 21:41:03
【问题描述】:
我创建了一个 Excel 2003 (.xls) 文件(使用 VBA 创建的宏)。 Excel 文件受到保护并具有隐藏的工作表。当我尝试在 Internet Explorer 中运行 Excel 宏时,我收到一条错误消息“对象 _Global 中的类“表格”的方法失败”。宏在 Excel 中运行良好。
我猜 IE 不会访问 Excel 工作簿中的工作表(隐藏或其他)。
有没有办法在我的 Excel VBA 代码中声明“表格”或“工作表”变量,以便 Excel 宏也可以在 IE 窗口中运行?
有没有办法解决这个问题?
我必须在 IE 中运行宏。
【问题讨论】:
-
我认为问题出在你的代码上,你能发一下吗?
-
欧文,我可以通过电子邮件发送给你。我编写的代码,即使基本有很多代码行。我创建了一个包含大约 25-30 个文本框和 4 个列表框的用户表单。文本框是根据对列表框项目的选择来填充的。剩余的文本框使用 excel 函数“vlookup”填充。示例: v = Application.WorksheetFunction.VLookup(-6, Sheets("Hose_Blk_mtrl").Range("H5:L12"), 5, False) 用于填充文本框。 “Hose_Blk_mtrl”工作表隐藏在工作簿中。我不知道我是否错过了声明什么。同样,宏在 excel 中运行良好。
-
我认为这里不鼓励使用电子邮件代码。它使您的代码在从 excel 运行时可以工作,如果您正在创建一个 IE 无法处理的新对象,那么它将引发错误。如果您可以只发布一些代码示例,它可能会让我更好地了解问题可能是什么。只需选择一些不同的区域并先发布即可。
-
欧文,我按照你的要求从我的每个模块中发布了几行。对于用户窗体: Private Sub UserForm_Initialize() ListBox1.AddItem ("XT3") ListBox1.AddItem ("XT5ToughGuard") CommandButton1.Enabled = False End Sub
-
"a" 是用户在列表框中选择的项目。 If a = "XT5" Then Select Case t Case "-12" v = Application.WorksheetFunction.VLookup(-12, Sheets("Hose_Blk_mtrl").Range("O8:P12"), 2, False) Case "-16 " v = Application.WorksheetFunction.VLookup(-16, Sheets("Hose_Blk_mtrl").Range("O8:P12"), 2, False) Case Else 'result_else End Select Call textbox_clear End If
标签: excel internet-explorer vba