努力学习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对象。
然后我尝试添加一个消息框来帮助调试(注释),但没有得到任何结果。感谢您的帮助!
答案 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