系统:Windows 10
Part 1:为什么整这个?
Part 2:框架搭建
效果图 Part 3:代码部分Sub 各工作表名称()
Rem>>\该程序会新建一个工作表“目录”,并置于第一个工作表位置
Rem>>\获得当前工作簿除“目录”工作表以外的工作表名称
Rem>>\工作表名称存放于“目录”工作表C列,从第2行开始
Rem>>\“目录”工作表A列,存放序号;B列存放“含义”;D列存放超链接
Rem>>\最多可以获取9999个工作表目录
Rem>>
For Each sht In ThisWorkbook.Worksheets
shtName = sht.Name
If shtName = '目录' Then
MsgBox '本工作簿已存在《目录》工作表,请确认' & Chr(13) & Chr(10) _
& '请手动删除该工作表或者对其更名,将新建一个新的《目录》工作表'
End
End If
Next
'新建目录
ThisWorkbook.Sheets(1).Select
Sheets.Add
ActiveSheet.Name = '目录'
Set shtContent = ThisWorkbook.Worksheets('目录')
shtContent.Move before:=ThisWorkbook.Sheets(1)
shtContent.Cells.ClearContents
shtContent.Range('A1') = '序号'
shtContent.Range('B1') = '含义'
shtContent.Range('C1') = '工作表名称'
shtContent.Range('D1') = '超链接'
strNewWbName = ThisWorkbook.Name
For Each sht In ThisWorkbook.Worksheets
shtName = sht.Name
If shtName <> '目录' Then
For intI = 2 To 10000 Step 1
If shtContent.Cells(intI, 'C') = '' Then
shtContent.Cells(intI, 'A') = intI - 1
shtContent.Cells(intI, 'C') = shtName
strHyperLink = 'HYPERLINK(' & Chr(34) & '[' & strNewWbName & ']' & _
shtName & '!A1' & Chr(34) & ',' & Chr(34) & shtName & Chr(34) & ')'
shtContent.Cells(intI, 'D') = '=' & strHyperLink
Exit For
End If
Next
End If
Next
'调整单元格
shtContent.Rows.AutoFit
shtContent.Columns.AutoFit
shtContent.Columns('B:B').ColumnWidth = 20
With shtContent.Cells
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub 代码截图 Part 4:部分代码解读
以上为本次的学习内容,下回见
|
|
来自: 今天George > 《Excel VBA》