excel VBA代码只选择一个表,我收到一个运行时错误“1004”;对象“_Global”的方法“Range”失败

k4aesqcs  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(229)

我试图编写VBA代码,只复制工作表上的表并将其粘贴到另一个工作表中。出现运行时错误"1004":对象"_Global"的方法"Range"失败。我猜我的一个或多个引用不正确。我做错了什么?非常感谢您的帮助。
这是密码:

Sub Final_Report()

' Final_Report Macro

   Sheets("Main Table(Atlas)").Select
    Dim rngData As Range
    Dim intRow As Integer
    Dim intColumn As Integer

        intRow = Range("AtlasReport_1_Table_1!11").Row
        intColumn = Range("AtlasReport_1_Table_1!1").Column

        Set rngData = Worksheets("AtlasReport_1_Table_1").UsedRange
        rngData.Offset(intRow - 1, intColumn - 1).Resize(rngData.Rows.Count - intRow + 1, rngData.Columns.Count - intColumn + 1).Select
 
    Selection.Copy
    Sheets("Final").Select
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
End Sub

调试器指向此行:

intRow = Range("AtlasReport_1_Table_1!11").Row
yacmzcpb

yacmzcpb1#

您可以这样做(不复制/粘贴,只使用.Value直接赋值)

Sub Final_Report()
    Dim wb As Workbook
    
    Set wb = ThisWorkbook
    With wb.Worksheets("Main Table(Atlas)").ListObjects("AtlasReport_1_Table_1").Range
        wb.Worksheets("Final").Range("B1").Resize(.Rows.Count, .Columns.Count).Value = .Value
    End With
End Sub

相关问题