只选择一列

时间:2014-01-28 12:12:35

标签: excel vba excel-vba

应该非常容易,但我找不到只选择一个整列的方法

我需要执行循环并每n列粘贴一个复制的列。 问题是我写的时候

Dim a As Integer
Dim b As Integer


b = 1
'a = InputBox("Insert number", "Insert number")
a = 6

While Application.CountA(Columns(b)) > 0
    b = b + a
    Columns(b).Select
    b = b + 1
Wend

不仅选择了列(b),还选择了几列。数量各不相同,但从1到10左右。我不知道这里有什么问题!我尝试过很多同样结果的小东西。

3 个答案:

答案 0 :(得分:1)

根据我收集的内容,您希望选择每个第6列并在每个列中插入预先确定的列值。

Sub selectCols()
    'b=1 is your starting column, 20 is the last column, step 6 makes it go up in 6's, if needs be, you can set this to a
    For b = 1 To 20 Step 6
        'I like to do this to ensure 100% there is no carry-over of selected cells from the previous run
        Range("A1").Select

        Columns(b).EntireColumn.Select
        'do your pasting here
    Next b
End Sub

答案 1 :(得分:0)

从记忆中,如果你改变:

Columns(b).Select

为:

Columns(b).EntireColumn.Select

然后它可能会起作用。

答案 2 :(得分:0)

您可以尝试:

Dim a As Integer
Dim b As Integer

b = 1 : a = 6

While Application.CountA(Columns(b)) > 0
    b = b + a
    Columns(b).Copy(Sheets("MySecondSheet").Columns(b).Cells(1,1))
    b = b + 1

    Debug.Print "a = " & a & "; b = " & b ' just for debug your values
Wend

修改

我的代码复制整个列并将其粘贴到“MySecondSheet”中。如果要复制标题,可能需要复制行,而不是列。

你能提供截图吗?