2017-07-07 52 views
-1

为什么此代码无法工作。任何人都可以帮助简单的代码?我写了这样的代码:应用程序功能故障与代码

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 

回答

1

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。

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

+0

我试过了你的建议。然后,应用程序被阻止在“set bru = controls(”cmb“&bre).caption”行上。我需要一个解决方案关于这个 –

+0

@YanLimaBenua你有'bru'类似的问题。没有理由将其声明为控件而不是字符串。查看编辑。 –