vba脚本excel动态创建索引目录表

       上代码:

'''动态创建目录表:其他表内容的索引,从其他表的每行中拷贝指定的列,拷贝后第一个单元格超链接到所拷贝的行
Function makeContent()
   
   contentSheetName = "content"
   '清空content表内容
   Sheets(contentSheetName).Select
   Sheets(contentSheetName).Rows("2:65535").Delete   '一张表最多只能有65535行
   
   '需要从其他表中拷贝的列,如果用例表不同,则修改这个数组
   copyCol = Array(1, 2, 4, 8, 10)
   
   '循环遍历除"content"之外的其他表
    For Each sh In Worksheets
    If sh.Name <> contentSheetName Then
        '从第二行开始拷贝,因为第一行是表头
        For r = 2 To usedRowCnt(sh)
            If sh.Cells(r, 1).Value <> "" Then
                '计算“content”表中当前已使用的行数
                curTotalRows = usedRowCnt(Sheets(contentSheetName))
            
                '循环拷贝每一列的数据
                i = 0
                 For Each col In copyCol
                    i = i + 1
                    Shee
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用VBAExcel创建一个目录,并将每个格的超链接指向其A1单元格,请按照以下步骤操作: 1. 打开VBA编辑器。可以通过按下Alt + F11来打开它。 2. 在VBA编辑器中,点击“插入”菜单,选择“模块”选项。 3. 在新模块中,输入以下代码: ```VBA Sub Create_TOC() Dim ws As Worksheet Dim i As Integer '创建一个名为“目录”的新工作 Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "目录" '在目录工作的第一行插入标题 Range("A1").Value = "目录" Range("A1").Font.Bold = True '在目录工作的第二行插入列标题 Range("A2").Value = "名" Range("B2").Value = "超链接" Range("A2:B2").Font.Bold = True '循环遍历所有工作 For i = 3 To Worksheets.Count Set ws = Worksheets(i) '在目录工作中插入工作名称 Range("A" & i - 1).Value = ws.Name '在目录工作创建超链接 ActiveSheet.Hyperlinks.Add Anchor:=Range("B" & i - 1), Address:="", SubAddress:= _ "'" & ws.Name & "'!A1", TextToDisplay:="跳转" Next i '自动调整列宽 Range("A:B").Columns.AutoFit End Sub ``` 4. 点击“运行”菜单,选择“Create_TOC”选项。 5. 这将在Excel创建一个名为“目录”的新工作,并在其中生成一个目录,其中包含每个工作的名称和指向其A1单元格的超链接。 请注意,此代码假定您的工作名称中不包含任何特殊字符,例如空格或逗号。如果您的工作名称中包含这些字符,请在代码中进行相应的修改,以确保超链接正常工作。 ### 回答2: VBA创建Excel目录并超链接到每个的A1单元格,可以通过以下步骤实现。 首先,我们需要在VBA编辑器中创建一个新的模块。可以通过按下“ALT+F11”打开VBA编辑器,然后选择“插入”->“模块”创建一个新的模块。 接下来,在新的模块中编写以下VBA代码: ``` Sub CreateExcelDirectory() Dim ws As Worksheet Dim directorySheet As Worksheet Dim hyperlinkFormula As String Set directorySheet = ThisWorkbook.Sheets.Add(After:= _ ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) directorySheet.Name = "目录" For Each ws In ThisWorkbook.Sheets If ws.Name <> "目录" Then directorySheet.Cells(directorySheet.Cells(directorySheet.Rows.Count, 1).End(xlUp).Row + 1, 1).Value = ws.Name directorySheet.Hyperlinks.Add _ Anchor:=directorySheet.Cells(directorySheet.Cells(directorySheet.Rows.Count, 1).End(xlUp).Row, 1), _ Address:="", _ SubAddress:="'" & ws.Name & "'!A1", _ TextToDisplay:=ws.Name End If Next ws End Sub ``` 在上述代码中,我们首先创建一个名为“目录”的工作,并将其放置在当前工作簿的最后。然后,我们循环遍历当前工作簿中的每个工作,除了“目录”工作。对于每个其他工作,我们将工作的名称写入“目录”工作的下一个空行。然后,我们使用“Hyperlinks.Add”方法添加一个超链接到该工作的A1单元格。 最后,在VBA编辑器中按下“F5”运行代码。运行代码后,将创建一个名为“目录”的工作,并在该工作中列出所有其他工作的名称。每个工作的名称都是一个超链接,点击该超链接将会跳转到相应工作的A1单元格。 以上就是用VBA创建Excel目录并超链接到每个的A1单元格的方法。 ### 回答3: VBA(Visual Basic for Applications)是一种编程语言,可以被用于创建Excel目录并为每个格添加超链接至A1单元格。 下面是一个简单的VBA代码示例,用于创建Excel目录并添加超链接: ```vba Sub 创建目录() Dim ws As Worksheet Dim wsIndex As Worksheet ' 创建目录 Set wsIndex = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) wsIndex.Name = "目录" wsIndex.Range("A1").Value = "格名称" wsIndex.Range("A1").Font.Bold = True ' 遍历所有工作 For Each ws In ThisWorkbook.Sheets ' 跳过目录 If ws.Name <> "目录" Then ' 在目录中添加超链接 wsIndex.Hyperlinks.Add Anchor:=wsIndex.Cells(wsIndex.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1), _ Address:="", _ SubAddress:="'" & ws.Name & "'!A1", _ TextToDisplay:=ws.Name End If Next ws End Sub ``` 这段代码首先创建一个名为“目录”的工作,并在A1单元格中输入标题“格名称”。然后,代码遍历工作簿中的每个工作,将其名称添加到目录中,并在A1单元格上创建超链接,链接到相应工作的A1单元格。 只需在VBA编辑器中打开你的Excel文件,选择工作簿对象,然后将以上代码粘贴到其代码模块中。运行“创建目录”宏,即可创建Excel目录并为每个格添加超链接至A1单元格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值