【发布时间】:2018-04-24 21:06:16
【问题描述】:
我对 VBA 非常陌生,我发现答案和教程信息量不大。
所以我要做的是检测下拉列表中选择的值是否发生变化,然后从那里将excel表的视图更改为相关单元格。
我的问题是很多示例 VBA 代码并没有真正附带解释。我现在拥有的是
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
With Application
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
'SWITCH CASE CODE HERE
With Application
.EnableEvents = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End If
End Sub
但是我真的不知道EnableEvents、ScreenUpdating、Calculation 做了什么。
我想知道
- 如何准确检测下拉框中的事件变化并获取下拉框的值(我这里还在想Java)
- 如何将视图切换到选定的单元格
提前致谢!
编辑:更新的代码仍然无法正常工作...
Private Sub Worksheet_Change(ByVal Target As Range)
'Prints nothing
Debug.Print Target.Address
If Target.Address = "$A$1" Then
'Prints nothing
Debug.Print Target.Value
With Application
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
If Target.Value = "Goto B1" Then
ActiveWindow.ScrollColumn = B
ActiveWindow.ScrollRow = 1
End If
With Application
.EnableEvents = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End If
End Sub
【问题讨论】:
-
您需要
Worksheet_Change而不是Worksheet_SelectionChange。如果 dv 列表在 a1 中,那么目标将是 a1。