2017-03-08 5 views
0

vbaを使用して名前付き範囲を動的に作成します。次に、各ページの名前付き範囲内の単語にエクスポートします。例:名前付き範囲はPage1、Page2、... Page10 ...などです。エクスポートしようとすると、Page1が最初に来てpage10が2番目に来ます。それはPAGE1、PAGE2、などを作る方法...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

"Page10" 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

関連する問題