我想运行一个简单的 For Each
循环来改变Excel中的视图,但一直得到一个。
438运行时错误
Sub ChangeView()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Select
ActiveWindow = xlNormalView
Range("A1").Select
Next
该错误突出表现在 ActiveWindow
行。为什么会这样?
ActiveWindow
是一个 对象, xlNormalView
是一个与该对象的一个属性相关联的长数常量。你不能把属性值赋给对象本身,而是把它赋给相应的属性。我相信正确的应该是
ActiveWindow.View = xlNormalView
下面的VBA会将所有的SELECTED表设置为相同的视图,相同的缩放级别 和相同的可见区域,就像活动标签一样。
Sub ResetAllSheetPerspectives_OnSelectedSheets()
'Not working? Are any tabs selected? Only works on selected worksheets.
Dim ws As Worksheet
Dim lRow As Long
Dim lCol As Long
Dim dZoom, dView As Double
lRow = ActiveWindow.ScrollRow
lCol = ActiveWindow.ScrollColumn
dZoom = ActiveWindow.Zoom
dView = ActiveWindow.View
For Each ws In Application.ActiveWindow.SelectedSheets
ws.Activate
ActiveWindow.Zoom = dZoom
ActiveWindow.View = dView
Application.Goto ws.Cells(lRow, lCol), True
Next ws
End Sub
请给下面的源头打上一票。
另请参阅。
你也可以做ActiveSheet.Range("A1").SelectIt不一定会改变视图,但也会选择相应的单元格。