2016-03-03 64 views
0

經與用戶表單的一些問題和設置的初始值,我嘗試運行如下:VBA多值設置

Sub colorme() 
For Each cell In Selection 
    If cell.Interior.ColorIndex = UserForm1.colorcodeinit.Value Then 
    With cell 
    .Interior.ColorIndex = UserForm1.colorcodefin.Value 
    End With 
End If 
Next cell 
End Sub 

然而,當我嘗試運行它沒有註冊爲初始顏色我設置,以下工作就好:

Sub colorme() 
For Each cell In Selection 
    If cell.Interior.ColorIndex = -4142 Then 
    With cell 
    .Interior.ColorIndex = UserForm1.colorcodefin.Value 
    End With 
End If 
Next cell 
End Sub 

感謝您的任何和所有幫助提前!

回答

0

根據您的colorcodeinit控件值的設置方式,您可能需要確保表單已完全加載並打開,然後再嘗試讀取任何值。

我正在重新格式化您的代碼以在SO/Markdown中呈現。代碼本身沒有出現任何問題,它可能僅僅是,當代碼運行時就是問題所在。

請注意,ColorIndex在所有Excel用戶中可能不可靠。

塊1:

'Your first code block 
Sub colorme() 
    For Each cell In Selection 
    If cell.Interior.ColorIndex = UserForm1.colorcodeinit.Value Then 
     With cell 
     .Interior.ColorIndex = UserForm1.colorcodefin.Value 
     End With 
    End If 
    Next cell 
End Sub 

塊2:

'Your second code block 
Sub colorme() 
    For Each cell In Selection 
    If cell.Interior.ColorIndex = -4142 Then 
     With cell 
     .Interior.ColorIndex = UserForm1.colorcodefin.Value 
     End With 
    End If 
    Next cell 
End Sub