2016-05-03 12 views
0

私はExcelのスプレッドシートからデータを入力するためにラベルを使用しているテンプレートの単語文書を持っています。私の仕事環境の性質上、私はこの作業にMailMergeを使用することはできません。管理スタッフは常に第3行に新しいデータを入力するため、データは常に同じセルに格納されます。ブックに複数のExcelシートの1つを呼び出して、値をWordにエクスポートする方法はありますか。

私の問題は、情報がワークブック内のいくつかのExcelワークシートの1つから引き出される可能性があるということです。私は一連のMsgBoxプロンプトを実行することができました(私のサンプルコードで行ったように)が、それは非効率的です。

ワークブック内の7つのワークシートの1つを選択する方法はありますか?

マイコード:

Sub Populate() 

Dim objExcel As New Excel.Application 
Dim exWb As Excel.Workbook 

Set exWb = objExcel.Workbooks.Open("c:\") 
MSG1 = MsgBox("Is the information found on Sheet 1?", vbYesNo, "Sheet Selection") 

If MSG1 = vbYes Then 
ThisDocument.This.Caption = "Objet/Subject: " & exWb.Sheets("Sheet1").Cells(3, 3) 
ThisDocument.That.Caption = exWb.Sheets("Sheet1").Cells(3, 1) 
ThisDocument.Your.Caption = exWb.Sheets("Sheet1").Cells(3, 2) 
Else 
MSG2 = MsgBox("Is the information found on Sheet 2?", vbYesNo, "Sheet Selection") 
End If 

If MSG2 = vbYes Then 
ThisDocument.This.Caption = "Objet/Subject: " & exWb.Sheets("Sheet2").Cells(3, 3) 
ThisDocument.That.Caption = exWb.Sheets("Sheet2").Cells(3, 1) 
ThisDocument.Your.Caption = exWb.Sheets("Sheet2").Cells(3, 2) 

exWb.Close 

Set exWb = Nothing 

End Sub 
+0

汎用の入力ボックスとそれらの入力を確認するためにそれらを求めてを:どのようなワークシートの数?あなたはXを入力しました、これは正しいですか? @NickSlashの提案が有効です。 – NickSlash

+0

あなたが何か「好きな」ものを望むなら、あなたのコードがワークシート名で満たされるリストボックスまたはコンボボックスを持つUserFormを作成することができます。ユーザはエントリを選択し、ユーザフォームを確認し、そこでコードが実行されます。 –

答えて

0

以下のコード試してみてください。例えば、その後、

foreach(Excel.Worksheet xlworksheet in xlWorkBook.Worksheets) 
{ 
    //find a selected worksheet 
    if (xlworksheet.EnableSelection == XlEnableSelection.xlNoRestrictions) 
    { 

    } 
} 
関連する問題