繁体   English   中英

在Excel加载项中选择工作表以运行VBA宏

[英]Select worksheet in Excel add-in to run VBA macro

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

但是,当我运行加载项时,工作表似乎被隐藏了,因此我的数据没有更新。 我收到此错误:“运行时错误'1004':对象'_Global'的方法'Worksheets'失败”。

有人可以告诉我如何使用带有工作表的加载项吗?

有趣的部分是,当我从excel的加载项列表中删除加载项后加载加载项时,它运行完美。 但是,当我重新运行宏时,工作表被隐藏,因此出现相同的错误。 我是VBA的新手,所以任何建议都将不胜感激!

编辑

码:

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

在引用工作表的名称之前,现在先引用工作表中工作表的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM