繁体   English   中英

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

[英]VBA select another sheet from cell reference in sheet 1

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

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

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

下拉框中的任何其他选择都应直接转到工作表1的单元格A2。

我已经尝试通过在此网站上复制其他内容来进行以下操作,但由于它无法进入新工作表,因此似乎不起作用。

谢谢达

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

我发现您必须确保工作表名称是字符串。 (顺便说一句,通常可以避免选择吗?)

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

Worksheet事件处理程序的上下文中,没有明确的工作表限定的任何普通 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

暂无
暂无

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

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