在Excel加载项中select工作表以运行VBAmacros

我已经使用VBA创build了一个加载项,这是一个带有计算的工作簿。 该加载项具有一个用户窗体来从访问数据库提取相关信息并填充工作簿。 填充数据后,在Sheet1中执行计算。 我需要将工作表“Sheet1”从加载项工作表粘贴到运行加载项macros的新工作簿。

但是,当我运行加载项时,工作表似乎被隐藏,所以我的数据没有更新。 我得到这个错误:“运行时错误'1004':对象'_Global'失败的方法'工作表'。

有人能告诉我如何使用一个加载项,其中有一个工作表,所需的计算执行?

有趣的部分是,当我加载插件后,从Excel加载项列表中删除它,它运行完美。 但是,当我重新运行macros,工作表变得隐藏,所以同样的错误出现。 我相当新的VBA所以任何build议,将不胜感激!

编辑

码:

Private Sub OptionOK_Click() 'On selecting OK from userform Dim ws1 As Worksheet Sheets("Sheet1").Visible = True Set ws1 = Worksheets("Sheet1") 'User Form Validation If Trim(Me.cboData.value) = "" Then Me.cboData.SetFocus MsgBox "Please complete the form" Exit Sub End If 'copies data to given cell in excel ws1.Range("A1").value = Me.cboData.value 'To copy selection from "Sheet1" into new workbook Workbooks("myaddin.xlam").Sheets(1).Copy End Sub 

我得到…> Sheets(“Sheet1”)的错误。Visible = True。

我只是意识到,我不得不在附加的VBA代码中使用“ThisWorkbook”。

Set ws1 = ThisWorkbook.Sheets ("Sheet1")

工作簿中的VBA代码应该使用“ThisWorkbook”来引用加载项中的表单或范围。

如果您知道它是什么表,并且您有权访问加载项代码,请确保在引发错误的行之前它是可见的。

 Sheets("Sheet3").Visible = True 

我怀疑你有另一个问题,因为你仍然可以引用一个隐藏的代码表。


你确定这条线是正确的:

 Workbooks("myaddin.xlam").Sheets(1).Copy 

在引用工作表的名称之前,请参考工作簿中工作表的位置。