2017-07-07 17 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'類似的問題。沒有理由將其聲明爲控件而不是字符串。查看編輯。 –