2016-05-03 5 views
0

Ich habe ein Vorlagen-Word-Dokument, das Etiketten verwendet, um Daten aus einer Excel-Tabelle einzugeben. Aufgrund der Art meiner Arbeitsumgebung kann ich MailMerge nicht für diese Aufgabe verwenden. Die Daten befinden sich immer in denselben Zellen, da das Verwaltungspersonal immer neue Daten in die dritte Zeile eingibt.So rufen Sie eine von mehreren Excel-Arbeitsblättern in einer Arbeitsmappe auf, um Werte in Word zu exportieren?

Mein Problem ist, dass die Informationen aus einem der Excel Arbeitsblätter in der Arbeitsmappe gezogen werden können. Ich könnte eine Reihe von MsgBox-Aufforderungen durchlaufen (wie in meinem Beispielcode), aber das scheint ineffizient.

Gibt es eine Möglichkeit, den Benutzer auffordern, eines der sieben Arbeitsblätter in dieser Arbeitsmappe auszuwählen?

Mein Code:

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

Ein generischer Boxeingang und bat sie dann ihre Eingabe zu bestätigen, zum Beispiel: welche Arbeitsblatt-Nummer? Du hast X eingegeben, ist das korrekt? – NickSlash

+0

@NickSlashs Vorschlag ist praktikabel. Wenn Sie etwas "schicker" wollen, können Sie ein UserForm mit einer Listbox oder Combobox erstellen, die Ihr Code mit den Arbeitsblattnamen füllt. Der Benutzer wählt einen Eintrag aus, bestätigt das UserForm und Ihr Code läuft von dort ab. –

Antwort

0

den Code Versuchen Sie unter:

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

    } 
} 
Verwandte Themen