我用其他几种语言看到了这一点,但VBA并没有真正看到任何东西。偶尔当我调用一个宏时,它会完成一个函数或子函数,它会重做它。它可以是从调用5个函数的sub到简单的find宏的任何东西。奇怪的是,它不会一直这样做。
例如,以下代码集创建了库存件号列表。我点击了VBA中的播放按钮,它运行了一次。我再次点击播放,它跑了两次。它是否运行一次或两次似乎没有押韵或理由。
Function NumFind()
lastrow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Range("Q:Q").ClearContents
Range("Q4") = "Num"
For a = 5 To lastrow
If IsEmpty(Cells(a, 16)) = False Then
b = Range("O:O").Find(Cells(a, 16)).Address
temp = Range(b).Offset(1, -12)
Cells(a, 17) = Left(temp, 4)
End If
Next
End Function
编辑:回答几个问题。
-No worksheet_change events / num found。在这些宏之前,工作表只是原始数据的列。
- 我已经从工作表上的一个按钮(连接到宏的简单设计按钮)和VBE上的“Run Sub / Userform”中运行了这个结果。
- 这是一个功能,因为我喜欢其中10个做不同的事情,我想要更大的潜水员召唤,所以我可以做不同的组合。 IE具有函数A,B,C,D,E,F并具有不同的子函数来调用A - B - C,或C - A - D或D - E等。