Excel Application.Goto目标单元格不在视图中

Excel Application.Goto目标单元格不在视图中,excel,vba,Excel,Vba,我创建了一个简单的Excel宏,当用户单击工作表(工作表1)中的某个单元格时会触发该宏。基本上,宏获取单击的单元格的值,并在单独的工作表(工作表2)中选择具有相同值的目标单元格 问题是,在定向到工作表2后,大约20%的时间目标单元格会高亮显示,但只是看不见,我必须向下滚动几行才能看到它。我希望能够确保在用户被定向到目标单元格后,目标单元格始终在视图中,但我不确定如何实现这一点 这是Excel 2016 Private Sub Worksheet_SelectionChange(ByVal Tar

我创建了一个简单的Excel宏,当用户单击工作表(工作表1)中的某个单元格时会触发该宏。基本上,宏获取单击的单元格的值,并在单独的工作表(工作表2)中选择具有相同值的目标单元格

问题是,在定向到工作表2后,大约20%的时间目标单元格会高亮显示,但只是看不见,我必须向下滚动几行才能看到它。我希望能够确保在用户被定向到目标单元格后,目标单元格始终在视图中,但我不确定如何实现这一点

这是Excel 2016

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If ActiveCell.Column = 1 Then
    If Target.Cells.Count = 1 Then
     Application.ScreenUpdating = False
     Dim c As Range
     Dim ans As String
     Dim Lastrow As Long

     ans = ActiveCell.Value
     Lastrow = Sheets("worksheet2").Cells(Rows.Count, "A").End(xlUp).Row

     For Each c In Sheets("worksheet2").Range("A2:A" & Lastrow)
       If c.Value = ans Then Application.Goto Reference:=Sheets("worksheet2").Range(c.Address): Exit Sub     

       Next
    End If
   End If
Exit Sub
End Sub

您可以使用“查找”在sheet2中查找所选项目,然后只需选择工作表和找到的单元格

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim s As Range
    If Target.Column = 1 Then

        Set s = Worksheets("Sheet2").Range("B:B").Find(what:=Target, lookat:=xlWhole)
        If Not s Is Nothing Then
            Worksheets("Sheet2").Activate
            s.Select
        Else: MsgBox Target.Value & " is not found in sheet 2"
        End If
    End If
End Sub

Goto
有一个可选的
滚动条
argumentFYI-
表格(“工作表2”)。范围(c.Address)
c
相同-您从一个范围开始,获取其地址,然后将其转换回一个范围…感谢您提供的信息。此代码肯定比我的更好,谢谢。