如何在 excel 中使用 vba 迭代所有工作表?

有两种方法可以浏览工作簿中的所有工作表。

  • 对于下一个循环
  • 适合每条卷发

1.使用for每个循环

如您所知,使用 FOR EACH 您可以迭代集合和工作簿中的所有对象,工作表是所有工作表的集合。

使用以下步骤:

  1. 首先,声明一个变量来引用循环的工作表。
    declare-a-variable-to-refer
  2. 之后,使用关键字“Foreach”开始循环,并引用工作簿中的每个工作表。
    start-the-loop-with-the-keyword
  3. 现在假设您要在每个工作表的单元格 A1 中输入一个值,您可以使用如下编写代码。
    want-to-enter-a-value-in-the-cell
  4. 最后,使用“End”关键字结束循环。
    use-the-keyword-end

有用的链接:运行宏宏记录器Visual Basic 编辑器个人宏手册

 Sub vba_loop_sheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A1").Value = "Yes" Next ws End Sub

此代码遍历每个工作表并在每个工作表的单元格 A1 中输入值。使用此方法的优点是它会遍历工作簿中的所有工作表。

如果您想浏览关闭的工作簿中的所有工作表,请使用如下代码。

 Sub vba_loop_sheets() Dim wb As Workbook Dim ws As Worksheet Application.DisplayAlerts = False Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") For Each ws In wb.Worksheets ws.Range("A1").Value = "Done" Next ws wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

2.使用For Next循环

您还可以使用FOR NEXT循环进行循环,其中您可以使用工作表的数量来决定要执行的循环次数,并使用循环计数器来引用每张工作表。

以下是您需要遵循的步骤:

  1. 首先,您需要声明两个变量来存储循环的计数值,另一个变量用于存储工作簿中的工作表数量。
    declare-to-variable-to-write-count-value
  2. 现在,将“shtCount”变量的值设置为等于工作簿中的工作表数。
    set-the-value-for-the-shtcount
  3. 之后,使用关键字“For i”开始循环代码,并使用循环计数器的最大值的叶计数。
    start-the-code
  4. 从这里开始,您需要使用循环计数器遍历所有工作表,并在每个工作表的单元格 A1 中输入值“是”。
    use-the-loop-counter-to-loop

完整代码

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long shtCount = Sheets.Count For i = 1 To shtCount Sheets(i).Range("A1").Value = "Yes" Next i End Sub

如果您想浏览关闭的工作簿,请使用以下代码。

 Sub vba_loop_sheets() Dim i As Long Dim shtCount As Long Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") shtCount = wb.Sheets.Count Application.DisplayAlerts = False For i = 1 To shtCount wb.Sheets(i).Range("A1").Value = "Yes" Next i wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub

添加评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注