2017-03-08 102 views
0

我使用vba動態創建命名範圍。然後我想在每個頁面的每個命名範圍內導出爲單詞。例如:命名範圍將是Page1,Page2,... Page10等等。當我嘗試導出時,Page1排在第一位,第10頁排在第二位。如何使它第1頁,第2頁,等等excel vba按特定順序查找命名範圍

For intCounter = 1 To wbBook.Names.Count 
     MsgBox Names(intCounter).name 
     'If IsNameRefertoSheet(oSht, Names(intCounter)) Then 
     If Names(intCounter).name Like "Page*" Then 
      With objDoc 
       Set rtarget = .Range(.Content.End - 1, .Content.End - 1) 
       'Insert page break if not first page 
       If Names(intCounter).name <> "Page1" Then rtarget.InsertBreak Type:=wdPageBreak 
       'Copy data from named range 
       Range(wbBook.Names(intCounter)).Copy 
       Set rtarget = .Range(.Content.End - 1, .Content.End - 1) 
       rtarget.Paste 
      End With 
     End If 
     'End If 
    Next intCounter 
+1

「第10頁」 indeeds任何字母排序來「第2頁」前。用零填充你的數字來代替「Page001」。這樣「Page010」將始終在「Page002」之後。 –

+0

@ Mat'sMug,按照你的建議工作。非常感謝你! – Manish

回答

0

命題

nbrofpage=10 'set your number of pages 
For intcounter = 1 To nbrofpage 
    With objDoc 
     Set rtarget = .Range(.Content.End - 1, .Content.End - 1) 
     'Insert page break if not first page 
     If intcounter <> 1 Then rtarget.InsertBreak Type:=wdPageBreak 
     'Copy data from named range 
     Range("page" & intcounter).Copy 
     Set rtarget = .Range(.Content.End - 1, .Content.End - 1) 
     rtarget.Paste 
    End With 
Next intcounter 
+0

感謝您的回覆。工作書有許多命名的範圍。當我從特定工作表導出特定命名範圍的單詞時,它顯示不同的順序並且還通過剪貼板錯誤。任何替代或幫助將不勝感激。謝謝! – Manish

+0

將名稱從page1更改爲page001,page002等工作。謝謝! – Manish