2016-07-28 10 views
1

Sheets(Array())メソッドを使用してシートの配列を選択したいとします。選択したいシートは、ワークシートPrintlijstのセルに名前が付けられています。 http://i.stack.imgur.com/uJqZc.jpgExcel Excelシートを配列から

そして、これはコードです:sheetnamesは

ない全ての細胞が、私はfolowing機能

を使用するので、もしこれがシートのように見えるもので満たされているK.

にフォーム列Dを記載されています私はerrorcheckのStrArrayとは「2450,2451,2452,2453,2454,2455,2456,2457」で使用する場合は、複数のシートが を選択しなければならないとき

Sub PDF_maken() 
Dim ws As Worksheet 
Dim LR As Long 
Dim r As Range 
Dim Mypath As String 
Dim strarray As String 


Set ws = ActiveWorkbook.Worksheets("Printlijst") 
LR = ws.Cells(Rows.Count, 1).End(xlUp).Row 

For Each r In ws.Range("B20:B20").Cells 

If Not IsEmpty("B" & r.Row) Then 
Mypath = ws.Range("B" & r.Row).Text 

colCheck = 4 
Do Until Cells(r.Row, colCheck) = "" 
    strarray = strarray & IIf(colCheck > 4, ",", "") & Cells(r.Row, colCheck).Value 
colCheck = colCheck + 1 
Loop 

ActiveWorkbook.Sheets(strarray).Select 
    ActiveWorkbook.SelectedSheets.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
Mypath & ws.Range("C" & r.Row).Text & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
IgnorePrintAreas:=False, OpenAfterPublish:=False 


End If 
Next r 

End Sub 

エラーが起こる

答えて

0

strarrayActiveWorkbook.Sheets(strarray)には使用できません。これは、単一のシート名またはシートの集合がアレイ内にあることを期待しています。

これはあなたの試みですか?

' 
'~~> Rest of your code 
' 

Dim strarray As String 
Dim MyAr As Variant 

Do Until Cells(r.Row, colCheck) = "" 
    strarray = strarray & IIf(colCheck > 4, ",", "") & Cells(r.Row, colCheck).Value 
    colCheck = colCheck + 1 
Loop 

If InStr(1, strarray, ",") Then 
    MyAr = Split(strarray, ",") '<~~ This is where we are creating an actual array 

    ActiveWorkbook.Sheets(MyAr).Select 
Else 
    ActiveWorkbook.Sheets(strarray).Select 
End If 

' 
'~~> Rest of your code 
' 

:ところで、あなたは.Selectを使用して回避し、直接それらのシート(S)上で操作を実行する必要があります。あなたは見たいかもしれませんHow to avoid using Select in Excel VBA macros

+0

ありがとう!それは動作しているようだ、配列に格納されているシートが選択されています。複数のシートが選択されている場合、エクスポートコマンドは機能しません。 1枚のシートしか印刷しなければならない場合は、 – user4373888

+0

複数のシートをエクスポートするときは '.Select'の後に' Selection'を使用できます。しかし、すべてのシートが非表示になっていることを確認してください。そうしないと、 '.Select'コマンドでエラーが発生します。 'Selection.ExportAsFixedFormat Type:= xlTypePDF、Filename ...... ' –

+0

うーん、ここでもうまくいきません。 – user4373888

関連する問題