运行时错误424:所需的对象。我缺少什么对象?

时间:2019-02-02 15:44:09

标签: excel vba loops object

努力学习Excel VBA中帮助我与我的工作。我正在创建动态零件清单。我可以有相同的部件号在我的清单中列举了好几次,对不同行出于各种原因,不同的数量。我要总结在另一片各部分的数量时,提供一个“统计”片材,得到快看清单。

话虽如此,不同的零件号将连续不断地流入和流出库存。我正在尝试对统计信息页面进行编码,以仅显示库存和总和中的零件编号,而不是所有零件编号和一堆零。

到目前为止我只试图初始化的统计片部件号的列表。完成后,我将开始对数量求和。前两行是文本,标题和标题。

Private Sub RefreshStatsButton_Click()

Dim FirstRowInventory As Integer
Dim LastRowInventory As Integer
Dim FirstRowStats As Integer    
Dim PartNoIndexCount As Integer    
Dim PartNoCol As Integer    



FirstRowInventory = 3    
FirstRowStats = 3    
PartNoIndexCount = 3    
PartNoCol = 1    

LastRowInventory = Worksheets("Inventory").UsedRange.Rows.Count    

For i = FirstRowInventory To LastRowInventory    
    If Worksheets("Inventory").Cells(i, PartNoCol).Value <> Worksheets("Inventory").Cells(PartNoIndexCount - 1, PartNoCol).Value Then    
        Worksheets("Inventory").Cells(i, PartNoCol).Value.Copy 
Destination:=Worksheets("Stats").Cells(PartNoIndexCount, PartNoCol)    
        'MsgBox ("InventoryCell: " & Worksheets("Inventory").Cells(i, PartNoCol).Value & " StatsCell: " & Worksheets("Stats").Cells(PartNoIndexCount, PartNoCol))
        PartNoIndexCount = PartNoIndexCount + 1    
        Else:    
    End If    
Next    


End Sub

我有望获得各零件号码的库存板无需重复列表。我得到

  

需要运行时错误424对象。

然后我尝试添加一个消息框来帮助调试(注释),但没有得到任何结果。感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

问题是代码正在尝试复制Range的.Value属性。这不是VBA的工作方式。例如,它正在尝试:

Worksheets("Inventory").Cells(i, PartNoCol).Value.Copy 

Value使其引发错误。尝试没有它,录制宏,看到它是如何生成的代码复制并粘贴。或尝试使用以下最小工作代码并对其进行调整:

Sub TestMe()

    With Worksheets(1)
        .Range(.Cells(1, 1), .Cells(5, 5)).Copy
        .Range("A10").PasteSpecial Paste:=xlPasteValues
    End With
    Application.CutCopyMode = False

End Sub