Private Sub Worksheet_SelectionChange
If Target.Address = "$C$11" Then
ActiveWindow.Zoom = 120
Else
ActiveWindow.Zoom = 55
End If
End Sub
所需的宏
單擊單元格C11,放大到120,否則,變焦應該是不管卡的設置來。我使用55,但其他人可能使用75,我不希望我的宏停止。想法?
Private Sub Worksheet_SelectionChange
If Target.Address = "$C$11" Then
ActiveWindow.Zoom = 120
Else
ActiveWindow.Zoom = 55
End If
End Sub
所需的宏
單擊單元格C11,放大到120,否則,變焦應該是不管卡的設置來。我使用55,但其他人可能使用75,我不希望我的宏停止。想法?
你可以試試這個代碼:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static zoomLevel As Integer
'Ensure zoomLevel is set
If zoomLevel = 0 Then
zoomLevel = ActiveWindow.Zoom
End If
'If cell C11 is selected, zoom on
If Target.Address = "$C$11" Then
zoomLevel = ActiveWindow.Zoom
ActiveWindow.Zoom = 120
Else 'If any other cell is selected zoom to the user's zoomLevel
ActiveWindow.Zoom = zoomLevel
End If
End Sub
使用Static
允許該變量的子程序執行結束後保持其價值。
會使用另一個單元格的縮放值爲55或75嗎? –
不幸的是沒有,因爲有不同的人使用這一個工作簿。這幾乎就像我想要它成爲一個循環 工作在我想要的任何縮放,單擊單元格C11,更改爲120縮放,然後單擊其他任何地方,並使其恢復到我原來設置的縮放級別。這可能是不可能的。 – goatamous
我沒有完全掌握宏的速度,但是您應該能夠全局存儲之前的縮放值並在之後進行檢索。看到這個問題的全局變量(http://stackoverflow.com/questions/2722146/how-do-i-declare-a-global-variable-in-vba)。您只需要一些邏輯,以便何時使用存儲的值,何時更新它等。 –