2016-06-30 8 views
0

エクスポートするワークシートを選択するワークブックがあります。 これが毎回変化しますし、ワークシートの名前は、細胞Y48に表示されます。これらは、上記選択されているかどうかに基づいてY55: selected cells and populated list配列を使用して印刷するワークシートを指定する

私はエクスポートするために呼び出すことができる動的配列を埋めるために、このリストを使用したいです配列内のシートのみをpdfします。私は私がメッセージボックスに表示することができVBAで配列を持っている

、私はちょうど(アレイ(myarrayの)は、コードの一部を.selectシートにそれを得ることができません。

私はすべて入力した場合それは機能するかどうかを選択しますが、myarrayから個々の値を取得する方法はわかりません。

申し訳ありませんコーダが、私はこのどこかを見つけることができません

これまでのところ、それは次のようになります。

Dim myarray() As String, size As Integer, i As Integer 

    size = WorksheetFunction.CountA(Range("y48:y55")) 
    ReDim myarray(size) 

    For i = 1 To size 
     myarray(i) = Cells(i + 47, 25).Value 
    Next i 
    MsgBox (size) 
    MsgBox Join(myarray, vbCrLf) 
    Sheets(myarray().Select 
    Sheets("COVER").Activate 

    answer = MsgBox("Do you want to export to PDF?", vbYesNo + vbQuestion, "Export to PDF") 
    If answer = vbYes Then 
fileSaveName = Application.GetSaveAsFilename("", fileFilter:="PDF (*.pdf), *.pdf") 
     If fileSaveName <> False Then 
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF,   Filename:=fileSaveName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 
     End If 
    End If 
    Sheets("REPORT").Select 
それは前の選択だ失うことはありませんので、

For i = Lbound(myarray,1) to Ubound(myarray,1) 
    Worksheets(myarray(i)).Select False 
Next i 

虚偽がそれを作る:その代わりSheets(myarray().Selectを使用しての

End Subの

答えて

0

は、ループを使用します。

+0

こんにちはカイル、ワークシート(myarray(myarray(i))に範囲外の添え字を返します。お試しいただきありがとうございます – user3412679

+0

まず、実際に入力した方法であれば、ワークシート(myarray(myarray(i))。Fals'を選択します。それ以外の場合、ワークシートは存在しません。 – Kyle

関連する問題