如果在同一工作表中满足条件,如何复制列
How to copy a column if the criteria is met within the same worksheet
我正在尝试根据 C 中的条件将 B 列复制到 E 列。但是,我似乎无法弄清楚如何将数据复制到匹配的行中。
例如,我希望它像这样执行 {如果列 (C=x) 则与 B 列到 E 列中的相应文本匹配}
列 > A |乙 |丙 | D | E
A X A
B Y
C X C
这是我的
Dim x As Integer
Dim textSG As String
Dim erow As Long
x = 3
erow = 0
Do while Worksheet.Cell(x, 3) <> ""
If InStr ((Worksheet.Cells(x, 3)),"X" > 0 Then
textSG = Worksheet.Cells(x, 2)
erow = erow + 3
Worksheet.Cells(erow, 5) = textSG
End if
x = x + 1
Loop
请尝试此代码。我认为它符合您的意图。
Dim R As Long
For R = 3 To Cells(Rows.Count, 3).End(xlUp).Row
' case insensitive comparison
If StrComp(Trim(Cells(R, 3).Value), "x", vbTextCompare) = 0 Then
Cells(R, 5).Value = Cells(R, 2).Value
End If
Next R
我正在尝试根据 C 中的条件将 B 列复制到 E 列。但是,我似乎无法弄清楚如何将数据复制到匹配的行中。
例如,我希望它像这样执行 {如果列 (C=x) 则与 B 列到 E 列中的相应文本匹配}
列 > A |乙 |丙 | D | E
A X A
B Y
C X C
这是我的
Dim x As Integer
Dim textSG As String
Dim erow As Long
x = 3
erow = 0
Do while Worksheet.Cell(x, 3) <> ""
If InStr ((Worksheet.Cells(x, 3)),"X" > 0 Then
textSG = Worksheet.Cells(x, 2)
erow = erow + 3
Worksheet.Cells(erow, 5) = textSG
End if
x = x + 1
Loop
请尝试此代码。我认为它符合您的意图。
Dim R As Long
For R = 3 To Cells(Rows.Count, 3).End(xlUp).Row
' case insensitive comparison
If StrComp(Trim(Cells(R, 3).Value), "x", vbTextCompare) = 0 Then
Cells(R, 5).Value = Cells(R, 2).Value
End If
Next R