2016-10-20 1 views
0

사용자 정의 폼에 ToggleButton (TB) 및 ComboBox (CB)가있는 경우 TB.value = True 인 경우 올바른 파일을 삽입하기위한 CB.value를 결정해야합니다.if/then 내의 대문자로 선택

TB.value를 처리하기 위해 if/then 문을 사용하고 있습니다. (저는 이것을 userform의 다른 토글에 사용했으며 독자적으로 효과적이었습니다 .CB.value를 처리하기 위해 시도하고 있습니다. 선별 된 case 문을 사용합니다.

을 나는 경우/다음 문 내에서 선택 case 문으로 스크립트를 실행하면, 내가 파일 삽입지고 있지 않다. 여기

을 포함, 내 코드의 예입니다 CB 초기화를 나열하는 방법 :

Private Sub CommandButton1_Click() 

CreateObject (Word.Application.Documents.Add) 

If ToggleButton1.Value = True Then 
Select Case File 
    Case ComboBox1.Value = "File A" 
     Selection.InsertFile FileName:="C:\File A" 
    Case ComboBox1.Value = "File B" 
     Selection.InsertFile FileName:="C:\File B" 
    End Select 
Else: 
    ToggleButton1.Value = False 
End If 

Unload Me 

End Sub 



Private Sub Userform_Initialize() 

With ComboBox1 
    .AddItem "File A", 0 
    .AddItem "File B", 1 
    End With 

End Sub 

누군가 내가 왜 위의 방법을 사용하여 파일을 삽입 할 수 없는지 알아내는 것을 도울 수 있다면, 그것은 인정 될 것입니다. 이렇게하는 더 좋은 방법이 있다면, 나는 또한 그것을 듣고 싶습니다!

미리 감사드립니다.

+1

들여 쓰기가 잠재적으로 혼동을 줄 수 있습니다. [Rubberduck] (https://github.com/rubberduck-vba/Rubberduck/releases)의 들여 쓰기가 유용 할 수 있습니다. 또한'Else' 다음에 콜론을 사용하지 마십시오. 콜론이 지시를 분리하지만 줄 바꿈을하기 때문에 라인 라벨처럼 보입니다. 중복되므로 중복됩니다. 마지막으로'If {boolean-expression} = True Then Then'도 중복되어'If {boolean-expression} Then'으로 단순화 할 수 있습니다. –

+0

중복에 대한 정보를 제공해 주셔서 감사합니다. 나는 아직도 이것을 배우고 있으므로 매우 도움이된다! 나는 또한 압흔을 살펴볼 것이다. 위의 코드는 실제 코드에있는 위치에서 약간 벗어났습니다 (정의와 함께 4자를 삽입해야했습니다). 들여 쓰기가없는 새로운 단계를 시작하려고합니다. 아래 단계에서 발생하는 모든 일들은 들여 쓰기됩니다. – Cyril

+1

다음 번에 전체 코드 블록 *에 대해 4 공백 *을 시도하십시오. –

답변

4

당신의 선택의 경우는 오류가 :

Select Case ComboBox1.Value 
    Case "File A" 
     Selection.InsertFile FileName:="C:\File A" 
    Case "File B" 
     Selection.InsertFile FileName:="C:\File B" 
    End Select 

당신은 당신이 선택 케이스 라인과 사례 라인의 가능한 결과에 테스트하는 것을 넣어.

+0

멋진 관찰, 감사합니다! 화가의 종류 나는 그것을 놓쳤다. Select Case의 기능을 수정 한 것처럼 보일지라도 파일이 삽입되지 않는 문제는 해결되지 않은 것처럼 보입니다. – Cyril

+1

'Case Else : msgbox를 추가해보십시오.'End Select' 전에 "No matches found"를 찾아보십시오. –

+0

그 결과가 나왔습니다 ... 일치하는 항목이 없습니다. 콤보 박스의 내용이 아닌 ComboBox.value =와 일치시키는 또 다른 방법이 있습니까? 죄송 합니다만 바보 같은 질문입니다. – Cyril