【发布时间】:2019-02-04 15:49:23
【问题描述】:
尝试学习 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 对象。
然后我尝试添加一个消息框来帮助调试(已注释掉),但没有得到任何结果。感谢您的帮助!
【问题讨论】:
-
我刚刚意识到,在我的 if 语句比较中,比较的右侧应该是 Worksheets("Stats"),但仍然没有解决我的问题。
-
我将部件号格式化为文本以保留前导零。我尝试将所有内容的 .Value 更改为 .Text ,但没有成功。
-
.Text也是范围的属性,因此错误应该是相同的。.Copy需要范围对象本身才能运行。 -
尝试使用 .Value2 没有成功。
-
@Vityata 我可以使用范围对象访问单个单元格吗?