excel中使用vba提取所有工作薄名称的方法

工具/原料

  • excel2013
  • 更多经验请关注,如果帮到了你,请在上方给个投票谢谢支持。 好人一生平安。
  • 先顶后看年薪百万,如果帮到了你,帮忙给个好评,这对小编很重要,万分感谢。

方法/步骤

  1. 1

    首先我们打开一个工作样表作为例子。

  2. 2

    打开vba编辑器,插入一个新模块并输入以下代码:

    Sub 提取工作薄名称()

      Dim s As Worksheet

      Dim range As range

      Dim i As Integer

      Set range = ActiveSheet.range("A1")

      For Each s In ThisWorkbook.Sheets

        range.Offset(i, 0).Value = s.Name

        i = i + 1

        If i = ThisWorkbook.Sheets.Count - 1 Then Exit For

      Next sh

    End Sub

  3. 3

    讲解很简单,activesheet为活动工作表,也就是运行该宏的表格,初始单元格设置为A1单元格。

  4. 4

    我们使用for each循环,历遍工作表内的所有工作薄,并使用range.offset()函数对其进行A1单元格偏移,并对其赋值为s.name。name函数返回的是工作薄的名称。

  5. 5

    循环的判断中止为所有工作薄计数-1,大家可以理解为减掉宏运行的当前空白工作薄的数字。计数函数为ThisWorkbook.Sheets.Count。

  6. 6

    新建一个空白工作薄,并插入按钮运行宏,我们可以得到当前工作表内所有工作薄的名称。

    END

注意事项

  • 注意我在代码中设置了一个错误,大家可以找找看。很明显的。
  • 这个错误是以前讲过的,如果大家找不出来可以私信我。谢谢你。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。