【问题标题】:VBA: Copy-Paste Into One Worksheet Macro ErrorVBA:复制粘贴到一个工作表宏错误
【发布时间】:2018-05-04 18:15:31
【问题描述】:

我正在尝试将工作簿中所有选项卡(工作表)中的列复制到 Sheet1 中的第一个空列中。上周,我写了下面的宏:

Option Explicit

Dim i As Integer

Sub GICF_Confimit_CopyPaste_Sheet()
    For i = 2 To 50 Step 1
        Sheets(i).Activate
        Range("C1").Select
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        Selection.Copy
        Sheets("Sheet1").Activate
        Range("A1").End(xlToRight).Offset(0, 1).Select
        ActiveSheet.Paste
    Next i
End Sub

这很好用,但现在它抛出一个错误,说它无法粘贴,我应该选择一个单元格并单击粘贴或选择相同大小的形状。这是很多数据(每个选项卡中有 150 多列),但这上周对我有用,现在似乎已经坏了,尽管我没有改变任何东西。

有人可以帮忙吗?

【问题讨论】:

  • 我应该补充一点,问题似乎是我的文件不允许我超过 256 列。我正在运行 Excel 2010,将文件保存为 .xlsx,上周没有遇到同样的问题。
  • 您将文件保存为 .xlsx,但它是否起源于 .xls?如果是这样,出于大小限制的目的,您实际上不能将其“转换”为 .xlsx。您需要创建一个 xlsx 格式的新文件,以便将列限制增加到 16,384。

标签: excel vba


【解决方案1】:

错误信息很清楚,复制的范围与选择的粘贴不同。我建议只选择单元格并粘贴它。

Option Explicit

Dim i As Integer

Sub GICF_Confimit_CopyPaste_Sheet()
For i = 2 To 50 Step 1
    Sheets(i).Activate
    Range("C1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Sheets("Sheet1").Activate
    Range("A1").Select
    ActiveSheet.Paste
Next i
End Sub

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多