Excel 在VBA中定义图纸和工作表

Excel 在VBA中定义图纸和工作表,excel,vba,Excel,Vba,我的工作簿既有图表工作表,也有普通工作表,因此我使用的是工作表,而不是工作表。但是,我不知道在下面的代码集中sht的类型应该是什么。我确信它不能是工作表 ' Hide all sheets/charts except Sheet1 Sub Hide_Sheets() Dim sht As ??? For Each sht In ActiveWorkbook.Sheets If sht.Name <> Sheet3.Name Then

我的工作簿既有图表工作表,也有普通工作表,因此我使用的是
工作表
,而不是
工作表
。但是,我不知道在下面的代码集中sht的类型应该是什么。我确信它不能是
工作表

' Hide all sheets/charts except Sheet1
Sub Hide_Sheets()

    Dim sht As ???

    For Each sht In ActiveWorkbook.Sheets
        If sht.Name <> Sheet3.Name Then
            sht.Visible = False
        End If
    Next sht

End Sub
'隐藏除Sheet1之外的所有图纸/图表
子表()
暗淡的短裙是什么???
对于ActiveWorkbook.Sheets中的每个sht
如果是sht.Name Sheet3.名称,则
短可见=假
如果结束
下一步
端接头

使用Variant,然后逐步完成代码,您将能够看到它是什么。 变体将在不做任何其他事情的情况下工作

我建议对变量使用实名,以便在将来的某个阶段更容易阅读代码

Sub Hide_Sheets()

    Dim sheet_ As Variant

    For Each sheet_ In ActiveWorkbook.Sheets
        If sheet_.Name <> Sheet3.Name Then
            sheet_.Visible = False
        End If
    Next sheet_

End Sub
子隐藏工作表()
尺寸表作为变型
对于ActiveWorkbook.Sheets中的每个工作表
如果工作表名称为Sheet3,则名称为
工作表可见=错误
如果结束
下一页_
端接头

使用Variant,然后逐步完成代码,您将能够看到它是什么。 变体将在不做任何其他事情的情况下工作

我建议对变量使用实名,以便在将来的某个阶段更容易阅读代码

Sub Hide_Sheets()

    Dim sheet_ As Variant

    For Each sheet_ In ActiveWorkbook.Sheets
        If sheet_.Name <> Sheet3.Name Then
            sheet_.Visible = False
        End If
    Next sheet_

End Sub
子隐藏工作表()
尺寸表作为变型
对于ActiveWorkbook.Sheets中的每个工作表
如果工作表名称为Sheet3,则名称为
工作表可见=错误
如果结束
下一页_
端接头
“图表和工作表是两个不同的集合。”-->

如果同时具有图表工作表和常规工作表,则可以通过以下对象集合进行循环:

Sub Hide_Objects()
    Dim wb As Workbook
    Dim obj As Object

    Set wb = ActiveWorkbook

    For Each obj In wb.Sheets
        If obj.Name <> "Sheet1" Then
            obj.Visible = False
        End If
    Next obj
End Sub
Sub Hide_Sheets_And_Charts()
    Dim wb As Workbook
    Dim sht As Worksheet
    Dim cht As Chart

    Set wb = ActiveWorkbook

    For Each sht In wb.Worksheets
        If sht.Name <> "Sheet1" Then
            sht.Visible = False
        End If
    Next sht

    For Each cht In wb.Charts
        If cht.Name <> "Sheet1" Then
            cht.Visible = False
        End If
    Next cht

End Sub
子隐藏_对象()
将wb设置为工作簿
作为对象的Dim obj
设置wb=ActiveWorkbook
对于工作分解表中的每个对象
如果对象名称为“Sheet1”,则
对象可见=错误
如果结束
下一个obj
端接头
或者,您可以像这样循环浏览这两个集合:

Sub Hide_Objects()
    Dim wb As Workbook
    Dim obj As Object

    Set wb = ActiveWorkbook

    For Each obj In wb.Sheets
        If obj.Name <> "Sheet1" Then
            obj.Visible = False
        End If
    Next obj
End Sub
Sub Hide_Sheets_And_Charts()
    Dim wb As Workbook
    Dim sht As Worksheet
    Dim cht As Chart

    Set wb = ActiveWorkbook

    For Each sht In wb.Worksheets
        If sht.Name <> "Sheet1" Then
            sht.Visible = False
        End If
    Next sht

    For Each cht In wb.Charts
        If cht.Name <> "Sheet1" Then
            cht.Visible = False
        End If
    Next cht

End Sub
子隐藏图纸和图表()
将wb设置为工作簿
将sht变暗为工作表
暗海隧As图
设置wb=ActiveWorkbook
对于wb.工作表中的每个sht
如果短名称为“Sheet1”,则
短可见=假
如果结束
下一步
对于wb.图表中的每个cht
如果cht.名称为“Sheet1”,则
cht.Visible=False
如果结束
下一个红隧
端接头
“图表和工作表是两个不同的集合。”-->

如果同时具有图表工作表和常规工作表,则可以通过以下对象集合进行循环:

Sub Hide_Objects()
    Dim wb As Workbook
    Dim obj As Object

    Set wb = ActiveWorkbook

    For Each obj In wb.Sheets
        If obj.Name <> "Sheet1" Then
            obj.Visible = False
        End If
    Next obj
End Sub
Sub Hide_Sheets_And_Charts()
    Dim wb As Workbook
    Dim sht As Worksheet
    Dim cht As Chart

    Set wb = ActiveWorkbook

    For Each sht In wb.Worksheets
        If sht.Name <> "Sheet1" Then
            sht.Visible = False
        End If
    Next sht

    For Each cht In wb.Charts
        If cht.Name <> "Sheet1" Then
            cht.Visible = False
        End If
    Next cht

End Sub
子隐藏_对象()
将wb设置为工作簿
作为对象的Dim obj
设置wb=ActiveWorkbook
对于工作分解表中的每个对象
如果对象名称为“Sheet1”,则
对象可见=错误
如果结束
下一个obj
端接头
或者,您可以像这样循环浏览这两个集合:

Sub Hide_Objects()
    Dim wb As Workbook
    Dim obj As Object

    Set wb = ActiveWorkbook

    For Each obj In wb.Sheets
        If obj.Name <> "Sheet1" Then
            obj.Visible = False
        End If
    Next obj
End Sub
Sub Hide_Sheets_And_Charts()
    Dim wb As Workbook
    Dim sht As Worksheet
    Dim cht As Chart

    Set wb = ActiveWorkbook

    For Each sht In wb.Worksheets
        If sht.Name <> "Sheet1" Then
            sht.Visible = False
        End If
    Next sht

    For Each cht In wb.Charts
        If cht.Name <> "Sheet1" Then
            cht.Visible = False
        End If
    Next cht

End Sub
子隐藏图纸和图表()
将wb设置为工作簿
将sht变暗为工作表
暗海隧As图
设置wb=ActiveWorkbook
对于wb.工作表中的每个sht
如果短名称为“Sheet1”,则
短可见=假
如果结束
下一步
对于wb.图表中的每个cht
如果cht.名称为“Sheet1”,则
cht.Visible=False
如果结束
下一个红隧
端接头

感谢您的及时回复。如何“单步执行代码,您将能够看到它是什么”?一旦遇到断点,您可以使用f8单步执行。参考资料。谢谢你的及时回复。如何“单步执行代码,您将能够看到它是什么”?一旦遇到断点,您可以使用f8单步执行。参考资料。从…起