我对VBA还是很陌生,我正在运行报告,并且我收到报告的方式中有几行具有我不需要的其他数据列,但它弄乱了这些条目的格式。例如,在B列中,我列出了每个人的个人资料,但是对于这几个条目,我有一个数字或其他名称(每个数字并不一致)。但是对于那些相同的条目,我在H列中有一个“ Y”,其他条目都没有。我正在尝试在报告中搜索H列中的“ Y”,然后复制C到H列并将其粘贴到B列中,以便所有数据对齐。在数百个条目中,可能需要移动6-7个条目。这是一些示例数据,希望可以解决此问题。 BTHOMAS列B是此示例中的问题。
Sub MoveColumns()
LR = Cells(Rows.Count, "B").End(xlUp).Row
a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("Sheet1").Cells(i, 8).Value = "Y" Then
Range("C:H").copy Range("B:G")
End If
Next
End Sub
我对复制和粘贴宏进行了大量研究,但是我发现的所有内容都是单个单元格或整行,然后将它们粘贴到另一张纸上。我只想复制并粘贴在同一行中。这是我到目前为止的代码,不幸的是它移动了每一列。
A | B | C | D | E | F | G | H
--------------------------------------------------------------------------------------------
ID | PROFILE | STATUS | DATE ADDED | LAST USED | EXP DATE | P/W EXP |
SBUTLER | NOM | ENABLED | 9/9/2014 | 10/5/2018 | 00/00/00 | N |
WPERRY | NOM | ENABLED | 10/29/2014 | 10/4/2018 | 00/00/00 | N |
BTHOMAS | NOM | ENABLED | 2/1/2017 | 9/28/2018 | 00/00/00 | Y
预期结果将使报告像下面的示例一样对齐。 I到J列中有数据,因此我只能复制C到H列。谢谢您的时间。
Face
答案 0 :(得分:0)
您只需要复制条件返回true的行。试试:
If Worksheets("Sheet1").Cells(i, 8).Value = "Y" Then
Worksheets("Sheet1").Range("C" & i & ":H" & i).copy Worksheets("Sheet1").Range("B" & i & ":G" & i)
End If
另一种方法:您可以删除列C
中的单元格,将其他单元格向左移动:
If Worksheets("Sheet1").Cells(i, 8).Value = "Y" Then
Worksheets("Sheet1").Range("C" & i).Delete Shift:=xlToLeft
End If
或
If Worksheets("Sheet1").Cells(i, 8).Value = "Y" Then
Worksheets("Sheet1").Cells(i, 3).Delete Shift:=xlToLeft
End If
(请注意,这将移动给定行上的所有所有单元格,并可能导致您不想要的东西)