首页 > 解决方案 > VBA循环功能到不同的列和工作表

问题描述

我的问题:我有以下“原始代码”,用于删除工作簿第 3 和第 4 列 Q 中值为“0”的行。

我现在需要为工作表 6 和 7 合并相同的功能,但这次是针对“C”列。我需要帮助来循环附加工作表和不同列的功能。我不能只是再次复制和粘贴相同的函数并更改为列范围,所以只是不确定我缺少什么来允许我从第 6 和 7 页的 C 列中删除“0”值。

Dim deleteRow As Long
Dim ws As Worksheet

    For i = 3 To 4
        Sheets(i).Select

        Set ws = ActiveSheet

        For deleteRow = ws.Range("Q" & Rows.Count).End(xlUp).Row To 2 Step -1

            If ws.Range("Q" & deleteRow).Value = 0 Then
              Rows(deleteRow).EntireRow.Delete
            End If

        Next deleteRow
    Next
End sub

标签: excelvba

解决方案


尝试Sub使用参数创建并稍后以您想要的方式调用它:)

Sub delR(startSheet As Long, endSheet As Long, setCol As String)

Dim deleteRow As Long
Dim ws As Worksheet

        For i = startSheet To endSheet
            Sheets(i).Select

            Set ws = ActiveSheet

            For deleteRow = ws.Range(setCol & Rows.Count).End(xlUp).Row To 2 Step -1

                If ws.Range(setCol & deleteRow).Value = 0 Then
                    Rows(deleteRow).EntireRow.Delete
                End If

            Next deleteRow
        Next

End Sub

Sub test_delR()

    Call delR(3, 4, "Q")
    Call delR(6, 7, "C")

End Sub

推荐阅读