VBA从工作表1中的单元格引用中选择另一个工作表

时间:2018-05-17 16:48:39

标签: excel vba excel-vba

希望有人可以提供帮助(我是新手所以请放轻松)

我在Sheet 1的单元格C11中有一个下拉框。

当我从下拉框中选择“单位销售”选项时,我想转到工作表1的单元格M1中列出的工作表名称。

下拉框中的任何其他选择应该只是转到Sheet 1的单元格A2。

我在本网站上复制了一些其他内容,但是它似乎没有用,因为它不会转到新的表格。

由于 DAR

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C11")) Is Nothing Then
 If Range("C11") = "Unit Sale" Then
      Sheets(Range("M1")).Select
      Range("A2").Select
            Else
        Range("A2").Select
      End If

  End If
End Sub

2 个答案:

答案 0 :(得分:0)

我发现你必须确保工作表名称是一个字符串。 (顺便说一下,选择是否有任何意义,因为通常可以避免?)

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("C11")) Is Nothing Then
    If Target.Value = "Unit Sale" Then
        Application.goto Sheets(Range("M1").Text).Range("A2")
    Else
        Range("A2").Select
    End If
End If

End Sub

答案 1 :(得分:0)

Worksheet事件处理程序的上下文中,任何没有显式工作表限定的 plain Range引用都会隐式引用事件处理程序父工作表

因此Range("A2").Select将尝试在事件处理程序的同一工作表中选择单元格A2,而不管前面的Sheets(Range("M1")).Select,从而生成错误

然后你可以编码如下:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$C$11" Then Exit Sub

    If Target.Value = "Unit Sale" Then
        With Sheets(Range("M1").Value) 'reference the sheet you want to select cell A2 of
            .Select ' select referenced sheet
            .Range("A2").Select ' select referenced sheet cell A2
        End With
    Else
        Range("A2").Select ' this will always select the parent worksheet cell A2
    End If
End Sub
相关问题