Vba 需要帮助了解不合格范围吗

Vba 需要帮助了解不合格范围吗,vba,excel,Vba,Excel,有人能帮我理解为什么这样做吗: Sub CommandButton1_Click() Sheets("Inventory Data").Range("A1:G1").Copy Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues End Sub 但是,这不是吗 Sub CommandButton1_Click() Sheets("Inventory Data").Range(Cells(1, 1)

有人能帮我理解为什么这样做吗:

Sub CommandButton1_Click()
    Sheets("Inventory Data").Range("A1:G1").Copy
    Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues
End Sub
但是,这不是吗

Sub CommandButton1_Click()
    Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, 7)).Copy
    Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues
End Sub
我真的希望列号最终成为一个变量。像这样:

Sub CommandButton1_Click()
    Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, i)).Copy
    Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues
End Sub
我尝试了多种形式的细胞进入范围

谢谢

这句话:

Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, i)).Copy
他真的这么做了:

ActiveWorkbook.Sheets("Inventory Data") _
              .Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, i)) _
              .Copy
除非ActiveWorkbook.SheetsInventory数据是ActiveSheet,否则该语句将爆炸,因为您正在使用另一个工作表上的范围来获取ActiveWorkbook.SheetsInventory数据上的范围

所有的东西都合格

…使用块可以简化此操作:

With Worksheets("Inventory Data")
    .Range(.Cells(1, 1), .Cells(1, i)).Copy
End With
我允许自己在这里插一点插头;我正在开发一个免费的开源VBE加载项,它可以轻松地为您找到这些错误-粘贴您的代码在实际的VBE中运行速度要快得多,尽管可以看到Rubberduck在您的代码中可以找到的一切-它还不完美,但总比什么都没有好:

本声明:

Sheets("Inventory Data").Range(Cells(1, 1), Cells(1, i)).Copy
他真的这么做了:

ActiveWorkbook.Sheets("Inventory Data") _
              .Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(1, i)) _
              .Copy
除非ActiveWorkbook.SheetsInventory数据是ActiveSheet,否则该语句将爆炸,因为您正在使用另一个工作表上的范围来获取ActiveWorkbook.SheetsInventory数据上的范围

所有的东西都合格

…使用块可以简化此操作:

With Worksheets("Inventory Data")
    .Range(.Cells(1, 1), .Cells(1, i)).Copy
End With
我允许自己在这里插一点插头;我正在开发一个免费的开源VBE加载项,它可以轻松地为您找到这些错误-粘贴您的代码在实际的VBE中运行速度要快得多,尽管可以看到Rubberduck在您的代码中可以找到的一切-它还不完美,但总比什么都没有好:

其他一些方式:

    Sheets("Inventory Data").Cells(1, 1).Resize(,i).Copy
    Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues

其他一些方式:

    Sheets("Inventory Data").Cells(1, 1).Resize(,i).Copy
    Sheets("Desig From Inv").Range("A1").PasteSpecial xlPasteValues


请尝试使用SheetsInventory Data.RangeSheetsInventory Data.Cells1,1,SheetsInventory Data.Cells1,i.Copy。可能与没有完全限定单元格有关。Mat的杯子在这里解释了您的问题,但我也建议将此作为调整大小的用例-例如SheetsInventory Data.Cells1,1.Resize1,7.复制,因为它避免了范围问题。谢谢Kyle,这很有帮助。我怀疑与排位有关,但我无法想象为什么以及如何更正。请尝试SheetsInventory Data.RangeSheetsInventory Data.Cells1,1,SheetsInventory Data.Cells1,I.Copy。可能与没有完全限定单元格有关。Mat的杯子在这里解释了您的问题,但我也建议将此作为调整大小的用例-例如SheetsInventory Data.Cells1,1.Resize1,7.复制,因为它避免了范围问题。谢谢Kyle,这很有帮助。我怀疑与排位赛有关,但我无法想象为什么以及如何纠正它。很好!免费的百科全书!免费百科全书