2016-10-20 6 views
0

ユーザフォームにToggleButton(TB)とComboBox(CB)があり、TB.value = Trueの場合、正しいファイルを挿入するCB.valueを特定する必要があります。if/then内のケースを選択

私はTB.valueに対処するためにif/thenステートメントを使用しています(私はこれをuserformの他のトグルに使用していますが、それはそれ自体で有効でした)CB.valueに対処するために、 Select Caseステートメントを使用します。

を私はのif/then文の中で、Select 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

関連する問題