Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA循环函数到不同的列和图纸_Excel_Vba - Fatal编程技术网

Excel VBA循环函数到不同的列和图纸

Excel VBA循环函数到不同的列和图纸,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

我的问题:我有下面的“原始代码”,用于删除工作簿第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
,稍后按您的意愿调用:)


@Teamothy答案的补充:如果您要像循环一样使用不同的、非连续的值,您可以使用
Array()
解决方案,如下所示:

Dim arSheets() As Variant   ' this method works with Variant only
Dim arCols() as Variant
Dim i As Long

arSheets = Array(3, 4, 6, 7)
arCols = ("Q", "Q", "C", "C")

For i = LBound(arSheets) To UBound(arSheets)
    delR_mod arSheets(i), arCols(i)
Next
NB1:显然,
delR_mod
只处理一张表,只接受两个参数


NB2:如果您只使用一个数组,您可以对arSheets中的每个some_变量使用
,甚至对数组(3、4、6、7)中的每个some_变量使用
,对@Teamothy的答案的补充:如果您要像循环一样使用不同的、非连续的值,您可以使用
数组()
解决方案,如下所示:

Dim arSheets() As Variant   ' this method works with Variant only
Dim arCols() as Variant
Dim i As Long

arSheets = Array(3, 4, 6, 7)
arCols = ("Q", "Q", "C", "C")

For i = LBound(arSheets) To UBound(arSheets)
    delR_mod arSheets(i), arCols(i)
Next
NB1:显然,
delR_mod
只处理一张表,只接受两个参数

NB2:如果你只使用一个数组,你可以对arSheets中的每个some_变量使用
,甚至对数组(3,4,6,7)中的每个some_变量使用
,“我不能再复制粘贴相同的函数…”,为什么?“我不能再复制粘贴相同的函数…”,为什么?