Excel VBA如何在两个指定标签间的工作表循环并插入行粘贴值
Excel VBA 遍历指定标签中间工作表的实现方案
实现逻辑依托Excel工作表的Index属性(该属性值对应标签栏从左到右的排列顺序),先定位两个边界标签的位置,再遍历中间区间的工作表即可,完整代码如下:
Sub WorksheetLoopBetweenTags() Dim startIdx As Integer, endIdx As Integer Dim i As Integer Dim Current As Worksheet ' 校验边界工作表是否存在,避免运行报错 On Error Resume Next Set Current = Worksheets("Tab >>>") If Err.Number <> 0 Then MsgBox "未找到边界工作表:Tab >>>", vbCritical Exit Sub End If Set Current = Worksheets("<<< Tab") If Err.Number <> 0 Then MsgBox "未找到边界工作表:<<< Tab", vbCritical Exit Sub End If On Error GoTo 0 ' 获取两个边界工作表的索引值 startIdx = Worksheets("Tab >>>").Index endIdx = Worksheets("<<< Tab").Index ' 自动适配边界顺序颠倒的场景(如果<<< Tab放在了Tab >>>左侧) If startIdx > endIdx Then Dim temp As Integer temp = startIdx startIdx = endIdx endIdx = temp End If ' 仅遍历两个边界中间的工作表,不包含边界本身 For i = startIdx + 1 To endIdx - 1 Set Current = Worksheets(i) ' 此处替换为插入新行、选择性粘贴值的业务逻辑即可 MsgBox Current.Name Next End Sub
如果两个边界标签中间没有其他工作表,循环会自动跳过不会执行,无需额外做空判断。
内容的提问来源于stack exchange,提问作者Ouen A
相关产品推荐
相关产品推荐

