尝试逐个复制多个工作表中的数据并粘贴到另一个工作表。

时间:2017-10-18 14:47:07

标签: excel vba excel-vba

我正在尝试逐张复制多张图片中的数据并将其粘贴到另一张图纸上。这是我的代码如下。但是,它显示"运行时错误1004:选择Range类的方法失败"。

Private Sub CommandButton1_Click()
'Stop if report not filled in fully
If Range("G28") < "1" Then
MsgBox ("Please Amend Quantity")
End If



 If Range("G28") >= "1" Then

  Range("B28").Select
  Selection.Copy
  Sheets("Order List").Range("A1").Offset(1, 0).Select
  ActiveSheet.Paste

 End If

 Sheets("Order List").Columns("A:D").AutoFit



End Sub

代码:&#34;表格(&#34;订单列表&#34;)。范​​围(&#34; A1&#34;)。偏移(1,0)。选择&#34;突出显示错误。我试图让它从Order List表中的A1中选择A行中的空白列,并将当前表下B28的值粘贴到它。请给我一些建议。非常感谢

1 个答案:

答案 0 :(得分:1)

请勿使用.Select或.Activate。这就是造成你问题的原因。请参阅此说明,了解如何避免它以及原因:How to avoid using Select in Excel VBA

以下是适用于您的代码的更新版本:

Private Sub CommandButton1_Click()

    Dim wb As Workbook
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet

    Set wb = ActiveWorkbook
    Set wsSource = wb.Sheets("Sheet1")  'Set to correct source worksheet name
    Set wsDest = wb.Sheets("Order List")

    'Stop if report not filled in fully
    If wsSource.Range("G28").Value < 1 Then
        MsgBox "Please Amend Quantity"
        Exit Sub
    End If

    wsSource.Range("B28").Copy wsDest.Range("A2")
    wsDest.Range("A:D").EntireColumn.AutoFit

End Sub