【问题标题】:VBA Error when I activate another sheet激活另一张工作表时出现 VBA 错误
【发布时间】:2013-06-10 06:01:59
【问题描述】:

我正在为我的工作制作一张纸,但我遇到了一些我无法通过互联网搜索解决的问题。

我现在有 2 张纸正在使用。

表 1:包含所有信息的数据库; 工作表 2:包含从工作表 1 中提取的数据的列表以及使用 UserForm1 添加额外信息的选项。

  • 在 Sheet2 上,我使用超链接通过以下代码启动 UserForm1:

    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
        If Target.Range.Column = "4" Then
            UserForm1.show
            Exit Sub
        End If
    End Sub
    

在我开始使用 UserForm1 上的代码之前,这一直很好。我在 VBA UserForm1 中做了一个 Vlookup,目标是 Sheet1。现在,只要我单击超链接,就会出现错误,并且调试引用了上面的代码“UserForm1”。

UserForm1 代码:

Private Sub UserForm_Initialize()
  Object = ActiveCell
  TextBox1.Value = Application.WorksheetFunction.VLookup(Object, Sheet1.Range("$B$2:$BW$622"), 1, False)
  Label3 = ActiveCell.Offset(0, 1).Value
  Label5 = ActiveCell.Offset(0, 3).Value
End Sub

Private Sub BUT_Annuleren_Click()
  Unload Me
End Sub

当我使用“Sheets("Sheet1").activate”时也会发生同样的情况。有人可以帮我从多张表格中提取我的 Userform1 中的信息吗?

感谢您的帮助!

罗恩

【问题讨论】:

  • 请显示您的错误信息

标签: excel vba userform


【解决方案1】:

试试这个,分配对象时别忘了使用Set关键字。

Private Sub UserForm_Initialize()
    Set Object = ActiveCell
    TextBox1.Value = Application.WorksheetFunction.VLookup(Object, Sheet1.Range("$B$2:$BW$622"), 1, False)
    Label3 = ActiveCell.Offset(0, 1).Value
    Label5 = ActiveCell.Offset(0, 3).Value
End Sub

Private Sub BUT_Annuleren_Click()
    Unload Me
End Sub

【讨论】:

  • 我一直在寻找另一个方向来解决这个问题......但现在它已经解决了,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
相关资源
最近更新 更多