【发布时间】:2019-07-07 18:57:04
【问题描述】:
我还是 VBA 的新手,我正在运行一份报告,我收到报告的方式有几行有我不需要的额外数据列,但它弄乱了这些条目的格式。例如,在 B 列中,我列出了每个人的配置文件,但对于这几个条目,我有一个数字或其他东西(每个条目都不一致)。但是对于那些相同的条目,我在 H 列中有一个“Y”,而其他条目都没有。我正在尝试在报告中搜索 H 列中的“Y”,然后将 C 列复制到 H 列并将其粘贴到 B 列中,以便所有数据对齐。在几百个条目中,可能有 6-7 个需要移动。这是一些我希望能说明问题的示例数据。 BTHOMAS B 列是此示例中的问题。
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 | 1234 | NOM | ENABLED | 2/1/2017 | 9/28/2018 | 00/00/00 | Y
我对复制和粘贴宏进行了大量研究,但我发现的所有内容要么是单个单元格,要么是整行,然后他们将其粘贴到另一张纸上。我只想复制并粘贴在同一行中。这是我到目前为止的代码,不幸的是它移动了每一列。
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
预期的结果是报表对齐,如下例所示。 I 到 J 列中有数据,所以我只能复制 C 到 H 列。感谢您的时间。
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
【问题讨论】:
标签: excel vba if-statement copy paste