使用Excel VBA改变视图

问题描述 投票:3回答:3

我想运行一个简单的 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 行。为什么会这样?

excel vba excel-vba
3个回答
8
投票

ActiveWindow 是一个 对象, xlNormalView 是一个与该对象的一个属性相关联的长数常量。你不能把属性值赋给对象本身,而是把它赋给相应的属性。我相信正确的应该是

ActiveWindow.View = xlNormalView 

0
投票

下面的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

请给下面的源头打上一票。

将所有选定的工作表设置为相同的可见区域


另请参阅。

如何在Excel中运行宏 - support.office.com

在Excel中使用宏 - WikiHow

如何使用你在网上找到的宏,简单六步 - searchengineland.com


0
投票

你也可以做ActiveSheet.Range("A1").SelectIt不一定会改变视图,但也会选择相应的单元格。

© www.soinside.com 2019 - 2024. All rights reserved.