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
汎用の入力ボックスとそれらの入力を確認するためにそれらを求めてを:どのようなワークシートの数?あなたはXを入力しました、これは正しいですか? @NickSlashの提案が有効です。 – NickSlash
あなたが何か「好きな」ものを望むなら、あなたのコードがワークシート名で満たされるリストボックスまたはコンボボックスを持つUserFormを作成することができます。ユーザはエントリを選択し、ユーザフォームを確認し、そこでコードが実行されます。 –