如何在不选择工作表的情况下在excel vba中粘贴整个列

时间:2015-03-23 20:02:41

标签: excel-vba excel-vba-mac vba excel

我试图将第一列复制到最后一列。这段代码有什么问题?得到以下错误:

Run-time error '438
object doesn't support this property or method

对于列,vba是否允许Copy但不允许paste

Sub copy_ids_user_output(sheet_name As String)

'   find last column
    Dim last_col As Integer
    last_col = Worksheets(sheet_name).Cells(1, Columns.Count).End(xlToLeft).column
    Debug.Print last_col

    Columns(1).Copy
    Columns(last_col + 1).Paste


End Sub

2 个答案:

答案 0 :(得分:5)

如果可能,您应该避免在宏中破坏用户的剪贴板。只需直接复制该列。

Columns(1).Copy Columns(last_col + 1)

答案 1 :(得分:-2)

您应该选择目的地,然后使用粘贴:

而不是:

Columns(last_col + 1).Paste

使用

Columns(last_col + 1).Select
ActiveSheet.Paste