Excel VBA - 根据名称移动列而不需要加载变量

时间:2017-08-04 10:48:41

标签: excel vba excel-vba

我正在尝试在一些VBA代码中组织我的列。我需要它们按照特定的顺序取决于行A中的值。我知道我可以使用以下方法来实现它,但是它很长,并且看起来很糟糕。有没有更有效的方法呢?

当前代码

    Set Name = Cells.Find(What:="Name", LookAt:=xlWhole)

然后激活单元格,找到列,然后粘贴到我想要的位置。所以如果列是这样的:

它会将订单更改为此

我不能删除我不想要的列,因为它们会改变位置。因此,如果我要删除C:C列,它可能会删除我偶尔需要的内容。

我需要它,以便无论有哪些列,或者有多少列,它也将按照上面显示的顺序排列。

由于

1 个答案:

答案 0 :(得分:0)

Try this.

Dim Rng As Range
Set Rng = ActiveSheet.UsedRange

If Range("A2").Value = "x" Then
    Range("A1,C1,D1").EntireColumn.Hidden = True
    Rng.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Sheet2").Range("A1")
End If