我正在尝试为规则编写宏。
A B C D E
X 1 RT YY SOW
D 3 FT GH TOW
F 4 FG TY
规则:在E列上一一过滤,并复制A和C列中的值。E列中的值不是预先确定的。因此,我可以在E列中使用具有不同值的excel,因此无法对编码条件进行硬编码。
我想过滤第一个值(例如,播种),然后获取任何行,将这些行的E列值复制到A和C列中。然后,我过滤第二个值(例如,拖曳)并复制到A和C列中。
结果应该像这样
A B C D E
SOW 1 SOW YY SOW
TOW 3 TOW GH TOW
F 4 FG TY
注意:现在当然会有数百行,而不会只有一行。因此需要一个宏。
说明:我想从E列中提取空白,然后复制到A列和C列的相应行中。但是由于E列没有严格定义的值,因此我无法硬编码我的过滤条件。 E列可能具有不同数量的唯一值和组合。我想按原样使用这些值,并复制到A和C列中。
答案 0 :(得分:2)
如果我正确理解了您的问题,您只想复制E列中不为空的值。因此,您要对其进行过滤。
VBA代码:
Sub CopyNoneEmptyCells()
Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1") 'Define your worksheet name
Dim lrow As Long
Dim i As Long
lrow = ws.Cells(Rows.Count, 1).End(xlUp).Row 'Check last row in column A 'Find the last row in column A
For i = 2 To lrow 'Loop from row 2 until last row. I assume you have a header at row 1
If ws.Cells(i, 5).Value <> "" Then 'If cell is not empty in column E, then
ws.Cells(i, 1).Value = ws.Cells(i, 5).Value 'Copy value from column E to Column A
ws.Cells(i, 3).Value = ws.Cells(i, 5).Value 'Copy value from column E to Column C
End If
Next i 'Next row
End Sub