2016-05-03 37 views
0

我有一個使用標籤從Excel電子表格輸入數據的模板文檔。由於我的工作環境的特性,我無法使用MailMerge執行此任務。數據總是在同一個單元格中,因爲管理員總是在第三行輸入新數據。如何調用工作簿中的多個Excel工作表中的一個以將值導出爲Word?

我的問題是,信息可以從工作簿中的幾個Excel工作表中的一個繪製。我可以運行一系列的MsgBox提示符(就像我在我的示例代碼中那樣),但這似乎效率低下。

有什麼方法可以提示用戶選擇該工作簿中的七個工作表之一嗎?

我的代碼:

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

+0

@NickSlash的建議是可行的。如果你想要一些「fancier」,你可以創建一個帶有列表框或組合框的用戶窗體,代碼用工作表名稱填充。用戶選擇一個條目,確認UserForm,然後從那裏繼續執行代碼。 –

回答

0

嘗試下面的代碼:

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

    } 
} 
相關問題