Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 在列和行中循环以查找和复制值_Excel_Vba_Loops_Filter - Fatal编程技术网

Excel 在列和行中循环以查找和复制值

Excel 在列和行中循环以查找和复制值,excel,vba,loops,filter,Excel,Vba,Loops,Filter,我需要为下图中的表格创建一个多循环 循环需要查找并复制所有行,其中(例如): 如果Bat=1、Bet=1、Bit=F、Bot=1、But=1,则将该行复制到另一张图纸上 它需要是动态的,因为数据每天都在变化,我需要为每个“分类”行创建一个循环,例如:1-1-F-1-1、1-1-J-1-1等等 我在这里搜索了很多主题 我试过这个: 选项显式 子测试() 将ws设置为工作表:设置ws=ThisWorkbook.Sheets(“基础”) Dim ARow As Long,眉毛As Long,CRow

我需要为下图中的表格创建一个多循环

循环需要查找并复制所有行,其中(例如):
如果Bat=1、Bet=1、Bit=F、Bot=1、But=1,则将该行复制到另一张图纸上

它需要是动态的,因为数据每天都在变化,我需要为每个“分类”行创建一个循环,例如:1-1-F-1-1、1-1-J-1-1等等

我在这里搜索了很多主题

我试过这个:

选项显式
子测试()
将ws设置为工作表:设置ws=ThisWorkbook.Sheets(“基础”)
Dim ARow As Long,眉毛As Long,CRow As Long,DRow As Long,ERow As Long,MyCellA As Range,Mycell b As Range,Mycell As Range,Mycell d As Range,Mycell As Range,名字As String
ARow=ws.Range(“A”&ws.Rows.count).End(xlUp).Row
BRow=ws.Range(“B”和ws.Rows.count).End(xlUp).Row
CRow=ws.Range(“C”&ws.Rows.count).End(xlUp).Row
DRow=ws.Range(“D”&ws.Rows.count).End(xlUp).Row
ERow=ws.Range(“E”&ws.Rows.count).End(xlUp).Row
对于ws.范围内的每个菌丝体(“A2:A”和ARow)
对于ws.Range(“B2:B”和BRow)中的每个菌丝体B
对于ws.范围内的每个MyCellC(“C2:C”和CRow)
对于ws.范围内的每个菌丝体(“D2:D”和DRow)
对于ws.范围内的每个菌丝体(“E2:E”和ERow)
如果菌丝体=2,菌丝体B=3,菌丝体D=1,菌丝体=1,则
MsgBox“达到1级!”
如果结束
下一个迈西尔
下一个菌丝体
下迈锡尔有限责任公司
下一个菌丝体B
下一个菌丝体
端接头

这里只需要一个循环-依次检查每一行并在该行上运行检查

像这样:

子测试()
将ws设置为工作表
变暗方向与长方向相同,rw方向与长方向相同
Set ws=ThisWorkbook.Sheets(“基础”)
ARow=ws.Range(“A”&ws.Rows.Count).End(xlUp).Row
对于ws.范围(“A2:E”和ARow).行中的每个rw
'测试行上的相关单元格以获得所需的值
如果rw.Cells(1).Value=2,则
如果rw.Cells(2).Value=3,则
如果rw.Cells(3).Value=“F”,则
如果rw.Cells(4).Value=1,则
如果rw.Cells(5).Value=1,则
MsgBox“达到1级!”
如果结束
如果结束
如果结束
如果结束
如果结束
下一个rw
端接头

注意,如果您只是同时进行
检查,速度会明显减慢,因为即使第一个单元格可能不符合您的条件,也需要读取所有5个单元格。

此处只需要一个循环-依次检查每一行并在该行上运行检查

像这样:

子测试()
将ws设置为工作表
变暗方向与长方向相同,rw方向与长方向相同
Set ws=ThisWorkbook.Sheets(“基础”)
ARow=ws.Range(“A”&ws.Rows.Count).End(xlUp).Row
对于ws.范围(“A2:E”和ARow).行中的每个rw
'测试行上的相关单元格以获得所需的值
如果rw.Cells(1).Value=2,则
如果rw.Cells(2).Value=3,则
如果rw.Cells(3).Value=“F”,则
如果rw.Cells(4).Value=1,则
如果rw.Cells(5).Value=1,则
MsgBox“达到1级!”
如果结束
如果结束
如果结束
如果结束
如果结束
下一个rw
端接头

注意,如果你只是同时进行
检查,那么速度会明显变慢,因为所有5个单元格都需要读取,即使第一个单元格可能不符合你的条件。

这里只需要一个循环-依次进行每一行并在该行上运行检查。嘿,蒂姆,晚安!谢谢你的帮助,伙计。但我不知道一个循环如何解决这个问题。由于我需要在每行的5个不同列中验证5个条件,以创建一个类别,例如,1-1-J-1-1(稍后我将使用此模式将所有行复制到另一个工作表),我如何使用单个循环实现这一点?请你给我举个例子好吗?谢谢这里你只需要一个循环-轮流在每一行上运行你的检查。嘿,蒂姆,晚安!谢谢你的帮助,伙计。但我不知道一个循环如何解决这个问题。由于我需要在每行的5个不同列中验证5个条件,以创建一个类别,例如,1-1-J-1-1(稍后我将使用此模式将所有行复制到另一个工作表),我如何使用单个循环实现这一点?请你给我举个例子好吗?谢谢哦,非常感谢,蒂姆,它工作得很好!!你救了我,祝你今天过得愉快干得好。我想知道为什么不使用
加入所有
Ifs
?哇哦,非常感谢,蒂姆,它工作得很好!!你救了我,祝你今天过得愉快干得好。我想知道为什么不使用
加入所有
Ifs