Excel VBA循环函数到不同的列和图纸
我的问题:我有下面的“原始代码”,用于删除工作簿第3和第4页Q列中值为“0”的行 现在,我需要为第6页和第7页合并相同的功能,但这一次为“C”列。我需要帮助来循环附加工作表和不同列的函数。我不能再次复制和粘贴同一个函数并更改为列范围,所以我不确定我缺少什么,以允许我从第6和第7页的C列中删除“0”值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
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_变量使用,
,“我不能再复制粘贴相同的函数…”,为什么?“我不能再复制粘贴相同的函数…”,为什么?