excel - VBA循环功能到不同的列和工作表

标签 excel 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

最佳答案

尝试创建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

关于excel - VBA循环功能到不同的列和工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58267289/

相关文章:

vba - 获取 Excel 工作表的实际打印区域(通过 VBA)

Excel VBA Userform.Name 作为下一个模块的变量,以防单击按钮

sql - 阿DODB : if in sql clause

c# - 使用后期绑定(bind)创建和填充 Excel 工作表

excel - Google 电子表格 COUNTIF TODAY()?

excel - 在没有数据的情况下将过滤器保存在数据透视表中

Excel 日期时间对象使我的 Python 3.7 shell 崩溃

vba - 同一个文件在两台不同的计算机上怎么会得到不同的结果呢?

arrays - 在 VBA 中使用范围数组 - Excel

excel - 将选定的行和列导出到 CSV 文件