一般来说,我对编码相对较新,但这里有:
我有一个很大的会员数据列表,我正在努力组织。这将是每周完成的,因为数据是可变的,所以我试图稍微自动化工作。
我的问题是,如果特定单元格包含特定文本,我想复制整行数据。
我已经能够使用此代码执行此操作:
Sub OK()
Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet
Set Source = ActiveWorkbook.Worksheets("Status")
Set Target = ActiveWorkbook.Worksheets("OK")
j = 2
For Each c In Source.Range("F1:F300")
If c = "Yes" Then
Source.Rows(c.Row).Copy Target.Rows(j)
j = j + 1
End If
Next c
End Sub
但是,我想使用多个条件,即如果 列E和I包含“是”,我只想复制行。
我最初的猜测是这样,但它看起来不对:
For Each c In Source.Range("F1:F300") AND Source.Range("I1:I300")
如何在代码中添加条件?我曾尝试使用“和”,但似乎无法正确使用它。
提前谢谢。
答案 0 :(得分:1)
您无法以循环方式添加其他范围。而是循环放置您最初放置的一个范围,并作为要逐行检查匹配的附加范围,但在列使用OFFSET方面不同,以测试同一行中的列I值。如下:
If c = "Yes" And c.Offset(0, 3) = "Yes"
所有在一起:
Sub OK()
Dim c As Range
Dim j As Integer
Dim Source As Worksheet
Dim Target As Worksheet
Set Source = ActiveWorkbook.Worksheets("Status")
Set Target = ActiveWorkbook.Worksheets("OK")
j = 2
For Each c In Source.Range("F1:F300")
If c = "Yes" And c.Offset(0, 3) = "Yes" Then
Source.Rows(c.Row).Copy Target.Rows(j)
j = j + 1
End If
Next c
End Sub