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
效果如下: