如何获取活动 NamedSheetView class 的名称 属性?

How to get the name property of the active NamedSheetView class?

Excel 现在可以存储个人过滤视图,以帮助在同时使用的文档中进行协作。 我只能找到一个插件的 Microsoft 文档,但该功能在我的 Excel 版本的 MS Excel for Microsoft 365 MSO (16.0.13127.20266) 32 位中可用。

https://docs.microsoft.com/en-us/javascript/api/excel/excel.namedsheetview?view=excel-js-preview

我正在尝试存储当前应用的 NamedSheetView 名称 属性(用于以后的恢复选项)但是 此代码失败:

Dim sh1 As Worksheet
Dim xViewName As String
Set sh1 = ThisWorkbook.Sheets(Sheet6.Name)
xViewName = sh1.NamedSheetView.Name

但是此代码有效(使用之前创建的“测试”视图):

sh1.NamedSheetViews.GetItem("Test").Activate

如果这个 NamedSheetViews 是一个集合,我应该可以得到项目 属性,但是这些代码也失败了:

strName = sh1.NamedSheetViews.GetItem(1).Name
strName = sh1.NamedSheetViews.Item(1).Name

有人成功获取工作表的当前 NamedSheetView 吗?

以下是我探测未知对象属性的方式:

我从引用对象开始。如果我不知道对象是什么,我使用 TypeName() 到 return 它是 class 名称(数据类型)。然后我声明该数据类型的变量。当我向下钻取结构时,清洗、冲洗并重复。声明变量后,选择变量并按 F1 打开该数据类型的 Microsoft 帮助文档。

模块代码

Sub WhatIsThat()
    Const TestName As String = "TestName"
    Dim View As NamedSheetViewCollection
    Set View = Sheet6.NamedSheetViews
    
    On Error Resume Next
    View.GetItem(TestName).Delete
    On Error GoTo 0
    
    View.Add TestName
    Dim SheetView As NamedSheetView
    Dim n As Long
    For n = 0 To View.Count - 1
        Debug.Print View.GetItemAt(n).Name
        Set SheetView = View.GetItemAt(n)
        Debug.Print SheetView.Name
    Next
    Stop
End Sub

立即Window 测试

?TypeName(Sheet6.NamedSheetViews)
?View.GetItemAt(0).Name
?TypeName( View.GetItemAt(0))

解决方案: (感谢TinMan的大力帮助)

Dim SheetView As NamedSheetView 
Dim sh1 As Worksheet
Dim ActiveSheetView as string 
Set sh1 = ThisWorkbook.Sheets(Sheet6.Name) 
Set SheetView = sh1.NamedSheetViews.GetActive
ActiveSheetView = SheetView.Name

申请:

sh1.NamedSheetViews.GetItem(ActiveSheetView).Activate