激活另一张纸时VBA错误

时间:2013-06-10 06:01:59

标签: excel vba userform

我正在为工作制作一张纸,但我仍然坚持通过互联网搜索无法解决的问题。

我目前正在使用2张纸。

表1:包含所有信息的数据库; 表2:包含从Sheet1中取出的数据的列表以及使用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中使用Sheet1上的目标进行了Vlookup。现在,当我单击超链接时,我收到一个错误,调试引用上面的代码" 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")激活"时也是如此。有人可以帮助我从多个工作表中获取Userform1中的信息吗?

感谢您的帮助!

罗恩

1 个答案:

答案 0 :(得分:0)

试试这个,在分配对象时不要忘记使用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