我有一张看起来像这样的工作表,但更复杂:
Product count real count
Rake Complete -1 n/a
Rake Head 2 =B3+B2
Rake Handle 2 =B4+B2
Bike Complete -5 n/a
Bike Handle 10 =B6+B5
Bike Wheel 25 =B7+B5+B5
Bike Frame 90 =B8+B5+B6
随着公式的工作,它看起来像这样:
Product count real count
Rake Complete -1 n/a
Rake Head 2 1
Rake Handle 2 1
Bike Complete -5 n/a
Bike Handle 10 5
Bike Wheel 25 15
Bike Frame 90 85
我会感谢 VBA 代码的帮助,它将 B 列的值重置为 C 列的值,如下所示:
Product count real count
Rake Complete 0 n/a
Rake Head 1 1
Rake Handle 1 1
Bike Complete 0 n/a
Bike Handle 5 5
Bike Wheel 15 15
Bike Frame 85 85
我有其他 VBA 代码放在其他工作表上,这些工作表对count
列中的值进行加减。为了使这个工作清单尽可能准确并且不基于变量,我想每天重置 B 列。这样,如果计数稍微偏离,我就不必重置所有内容。
我已经为此工作了一段时间,我知道有比我尝试过但失败的五个更好的方法来做到这一点。虽然它需要基于列,但我的工作表有 465 行需要应用,并且随着业务的增长,此工作表上的行也将如此。
让我最接近的代码是这样的:
Sub CommandButton1_Click()
Columns("C:C").Select
Selection.Copy
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Dim r As Long
For r = Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
If Cells(r, 2) = "n/a" Then Cells(r, 2).value = 0
Next r
End Sub
我遇到的主要问题是每次运行代码时,我的其他一些产品的数量都会增加。如果您查看自行车车架,您可以单独出售它,但您也可以在出售时获得自行车把手。当此代码重置时,它总是添加自行车把手。如果我运行它 10 次而不进行任何更改,我的库存会增长得更高,那么 excel 愿意显示。知道如何解决这个问题或任何不同方式的想法吗?