希望有人可以提供帮助(我是新手所以请放轻松)
我在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
答案 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