应用程序函数与 if 代码的问题



为什么这段代码不起作用。任何人都可以帮助简单的代码吗?我像这样编写代码:

Private sub cmbStart_click()
Dim bro as application
Dim bre as integer
Dim bru as control
For bre = 1 to 42
Set bru = controls("cmb" &  bre).caption
Set bro = application.worksheetfunction.vlookup(bre, sheets("keg").range("c2:f300"),4,0)
If bro = "es" then
Controls("cmb" & bre).backcolor = rgb(255,0,0)
Else
Controls("cmb" & bre).backcolor = rgb(255,0,0)
End if
Next bre
End sub

Vlookup()不返回应用程序,因此将bro声明为Application毫无意义。

只是

Dim bro As Variant
'...
bro = Application.Worksheetfunction.Vlookup(bre, sheets("keg").Range("c2:f300"),4,0)

同样,没有理由将bru声明为控件。标题只是一个String

因此:

Dim bru As String
'...
bru = controls("cmb" &  bre).caption

VBA主要是一种使用对象的命令式语言。你似乎试图让一切都成为对象。

我无法测试代码,但以上作为 VBA 更有意义。

如果这不能解决问题,您需要更多地说明代码如何不起作用。简单地报告它不起作用并不是很有帮助。