我有一些后端代码,这些代码会根据前端用户可编辑工作表(“ iButton”)的内容生成一个MsgBox。下面的代码可以正常运行,但是很快,但是我意识到,随着“ iButtons”表的增加,我将需要随着时间的推移不必要地管理此代码。
我是否可以轻松地将其写入一个循环中,以便快速扫描iButtons表单中包含内容的表单中的所有行(直到到达空行)?循环是否足够快而可以在后台被动运行,或者鉴于需要运行的代码量,MsgBox弹出窗口的响应是否会过慢?
Public Sub iButtons(ByVal Target As Range)
'Pulls content from the iButtons sheet
If (ActiveSheet.Name = Worksheets("iButtons").Range("A4")) And Not Intersect(Target, Target.Parent.Range(Worksheets("iButtons").Range("B4"))) Is Nothing Then
MsgBox Worksheets("iButtons").Range("D4"), vbInformation, Worksheets("iButtons").Range("C4")
ActiveSheet.Range("A1").Select
End If
If (ActiveSheet.Name = Worksheets("iButtons").Range("A5")) And Not Intersect(Target, Target.Parent.Range(Worksheets("iButtons").Range("B5"))) Is Nothing Then
MsgBox Worksheets("iButtons").Range("D5"), vbInformation, Worksheets("iButtons").Range("C5")
ActiveSheet.Range("A1").Select
End If
If (ActiveSheet.Name = Worksheets("iButtons").Range("A6")) And Not Intersect(Target, Target.Parent.Range(Worksheets("iButtons").Range("B6"))) Is Nothing Then
MsgBox Worksheets("iButtons").Range("D6"), vbInformation, Worksheets("iButtons").Range("C6")
ActiveSheet.Range("A1").Select
End If
End Sub
谢谢!
答案 0 :(得分:0)
可能是程序化的方式(抱歉,我的VB今天有点生疏,所以仅作一般性描述):
制作有关每个按钮的信息的全局数组,并使用有关每个按钮的信息初始化数组(该信息似乎是标准的,因此可以使用用户定义的Type
数组)
在工作表中添加或删除每个按钮后,仅更新此数组。
具有处理所有按钮的过程。它具有一个循环,该循环从数组的第一个条目(一个按钮)到数组的最后一个按钮,并执行通用处理。