工作表和工作薄

1、activate 方法和select方法作用类似,区别在于select方法要求工作表可视(否者报错)。activate为活动工作表,否者有隐藏表时activate会选择隐藏后的一个表。

选择所有工作表表时只能用select方法。

方式:

worksheets.select

worksheets(array(1,2,3..)).select

Dim shs As Worksheet
  For Each shs In Worksheets
  shs.Select False
Next

2、sheets和worksheets选定工作区别在于sheets表示范围更大,还可表示宏表集合和,图表集合

3、index和codename属性分别返回工作表对象的索引号和代码名称,其中代码名称可以在属性窗口更改

4、name和codename属性,前者返回表名称,后者返回属性名称

5、当前活动工作表表示方法:activesheet.name

6、关于简写,integer a% 、string a$、long  & 、Single  !  、Double  #、Currency  @ 

7、关于Ubound和Lbound,前者可应用数组维度的最大下标,后者引用数组维度的最小下标,对于声明的array数组,下标从0开始

Sub s()
    Dim arr
    arr = Array(1, 2, 3, 4)
    Debug.Print UBound(arr)  '最大下标3
    Debug.Print LBound(arr)  '最小下标0
      
    Dim brr(1 To 100, 0 To 3, -3 To 4)
    Debug.Print UBound(brr, 1)  '一维最大下标100
    Debug.Print UBound(brr, 2)  '3
    Debug.Print UBound(brr, 3)  '4
    
    Debug.Print LBound(brr, 1)  '1
    Debug.Print LBound(brr, 2)  '0
    Debug.Print LBound(brr, 3)  '-3
End Sub

  

 8、生成工作表目录,并实现自动跳转(activate事件可自动生成目录,自动跳转使用selectionchange事件)

' 工作表的activate事件建立工作表目录,并实现自动跳转

Public Sub worksheet_activate()
    Dim R%, x&
    Dim sh As Worksheet
    R = Sheet4.[a65536].End(xlUp).Row
    x = 2
    If Sheet4.Cells(2, 1) <> "" Then
        Sheet4.Range("a2:a" & R).ClearContents
    End If
    For Each sh In Worksheets
        If sh.CodeName <> "Sheet4" Then
            Sheet4.Cells(x, 1).Value = sh.Name
            x = x + 1
End If Next End Sub Private Sub worksheet_selectionchange(ByVal target As Range) Dim R% R = Sheet4.[a65536].End(xlUp).Row On Error Resume Next If target.Count = 1 Then If target.Column = 1 Then If target.Row > 1 Then Sheets(target.Value).Select End If End If End If End Sub

 

效果如下:

 

 

posted @ 2019-10-27 11:05  Jude_h  阅读(367)  评论(0编辑  收藏  举报