2012-10-05 7 views
0

Excel 스프레드 시트의 ActiveX 컨트롤 단추 캡션을 업데이트하여 click 이벤트와 연결된 코드가 작동하고 있음을 알리고 있습니다. 이 코드는 하늘색 데이터베이스에서 데이터를 가져 오므로 버튼을 누르면 5-10 초 지연이 발생합니다. 버튼 캡션을 변경하지 그러나Excel vba의 ActiveX 단추 캡션 업데이트

Sub GetInfofromDB() 
    btnUpdate.Caption = "Updating...." 
    <<code to get data from azure db>> 
    btnUpdate.Caption = "Update List" 'reverts button to standard text 
End Sub 

:

내 원래의 코드는 기본적으로이처럼 보였다 하나의 하위했다. 콤보 상자 업데이트가 작동합니다.

캡션 업데이트를 자체 하위로 분리 한 다음 버튼을 눌렀을 때 버튼을 눌렀을 때 각 하위를 순서대로 호출했습니다. 버튼을 업데이트하지 않았습니다.

데이터 업데이트를 호출하지 않고 캡션 업데이트로 하위를 호출하면 버튼이 성공적으로 업데이트됩니다.

그래서 각 부품은 자체적으로 작동하지만 연속적으로 발생하지는 않습니다. 데이터 호출 이전에 내 버튼을 업데이트하는 방법은 무엇입니까?

감사합니다. 표시

답변

0

캡션을 변경 한 후 aaplication.screenupdating = true를 추가하십시오.

다음 코드는 저에게 효과적입니다. DoEvents 사용

Private Sub CommandButton1_Click() 
CommandButton1.Caption = "true" 
DoEvents 
Application.ScreenUpdating = True 

For i = 1 To 2 
    Application.Wait (Now + TimeValue("0:00:1")) 
Next i 

CommandButton1.Caption = "False" 
End Sub 
+0

완벽! 그게 효과가 있었어. DoEvents에 대한 첫 번째 노출은 오늘 새로운 것을 배웠습니다. –