0

这个问题是根据以下问题:

Visual Basic 移动所有其他列以创建一个长列 B

我用了最好的答案:

sub ss()
    Dim col As Range

    For Each col In Worksheets("Sheet1").Columns
        If (col.Column > 1 And col.Column < 171) Then
            Range(col.Rows(1), col.Rows(15)).Select
            Selection.Cut
            'Select cell at bottom of A
            ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select
            ActiveSheet.Paste   'Paste
        End If
    Next col
End Sub

现在这可行,但是它将excel工作表中的所有列平铺到一列。我想要做的是在运行宏时只对选定的列执行此操作,而不是对整个工作表执行此操作。

那可能吗?如何?

4

1 回答 1

0

像这样?

Sub Sample()
    Dim col As Range
    For Each col In Selection.Columns
        If col.Column > 1 And col.Column < 171 Then
            Range(col.Rows(1), col.Rows(15)).Select
            Selection.Cut
            ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select
            ActiveSheet.Paste
        End If
    Next col
End Sub
于 2012-02-16T14:35:17.093 回答