修复我的宏以将范围复制到下一个空白列?

时间:2014-09-25 01:15:08

标签: excel-vba vba excel

每次单击宏的表单按钮时,我需要将单元格区域复制到单独的工作表中的下一个空白列中。

这是代码。问题是它复制到下一个空白,我需要下一个空白列。我尝试过以各种方式编辑行*并最终出现错误或没有效果(例如替换"行"使用"列")。

  • Cells(Rows.Count,1).End(xlUp).Offset(1,0)

如果找到了复制到下一个空白行VBA'的基础。在SO,在以下链接: Copy and Paste a set range in the next empty row

感谢您的帮助,我目前陷入困境。

Sub TestCopyToDB()

    Application.ScreenUpdating = False
    Dim copySheet As Worksheet
    Dim pasteSheet As Worksheet

    Set copySheet = Worksheets("sheet1")
    Set pasteSheet = Worksheets("sheet2")

    copySheet.Range("M1:M15").Copy
    pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Application.ScreenUpdating = True

End Sub

1 个答案:

答案 0 :(得分:9)

Cells方法有两个参数, row column ,即

Cells(1,1)   '<~~ equivalent to cell "A1"
Cells(1,3)   '<~~ equivalent to cell "C1"
Cells(10,13) '<~~ equivalent to cell "M10"

Offset方法的工作方式类似,有两个参数, row_offset column_offset ,所以:

.Offset(1,1)   '<~~ returns the cell one row below, and one column to the right
.Offset(-1, 3) '<~~ returns the cell one row above, and 3 columns to the right

进行一些调整,并将.End(xlUp)(针对行)更改为.End(xlToLeft),这样就可以了:

With pasteSheet
    .Cells(1, .Columns.Count).End(xlToLeft).Offset(0,1).PasteSpecial _
        Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
End With