2016-11-17 12 views
-1

Excelでマクロを作成することはまったく新しいことです!配列のセル値を変数にする方法

私の配列の入力として1つのセルの値を使用しようとしていますが、imは "subscript out of range"という問題を出しています。

Sub Macro1() 

MyValue = ActiveSheet.Range("A1") 

ThisWorkbook.Sheets(Array(MyValue)).Select 

End Sub 

A1 = 1,2,4の値は、使用可能なシートに対応します。その価値を直接魅力のように働かせます。

ありがとうございました

+0

はあなたの配列の「MyValue」ですか? –

+0

MyValueの値が "1,2,4"の場合、配列 –

+0

になりますので、配列をMyValue(0)= 1、MyValue(1)= 2、MyValue(2)= 4にします。 '?これらのうちどれをワークシートを選択したいのですか?あなたはすべてのものをループしたいですか? –

答えて

0

私は以下のコードを試してみて、それはあなたが何を意味するかだなら、私に知らせて、私はあなたのポストを理解してほしいです。

Falseにオプションの引数を追加すると、複数のシートを選択することができます。

Option Explicit 

Sub Macro1() 

Dim MyValue 
Dim i As Integer 

MyValue = Split(ActiveSheet.Range("A1"), ",") 

For i = 0 To UBound(MyValue) 
    ThisWorkbook.Sheets(CInt(MyValue(i))).Select (False)  
Next i  

End Sub 
+0

マクロはエラーなしで実行されています。しかし、シート4のみが選択されます。 –

+0

はいありがとうございます!作品です –

0

私はこれがあなたが探しているものだと思います。

Sub print_sheets() 
    MyValue = ActiveSheet.Range("A1").Value 

    MyArr = Split(MyValue, ",") 

    For Each Value In MyArr 


     ThisWorkbook.Sheets(CInt(Value)).Activate 
     ' Change the directory below 
     ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
      "C:\Users\<<<USER>>>>\Documents\" & Value & ".pdf", Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
      True 


    Next Value 


End Sub 

これはA1を読み取り、それを分割します。用紙を有効にして、用紙に印刷します。 シートを呼び出す内容が分からない限り、pdfに印刷することはできません。 EDIT:ファイルの名前としてsheetnumberを付けて保存しました。

enter image description here

+0

Split関数を使用すると、タイプミスマッチのエラーが発生します。 –

+0

ここが私の間違いだったかどうかわかりません。私はA1でなく範囲( "I1")のコードを残しています。しかし、あなたが私たちに言っていないことが他にない限り、それはうまくいくはずです。コードをA1に編集しました。それが問題だったら。 – Andreas

+0

これは私のコードです、多分何かが欠落しています。私はまったく新しいこれを言ったように! –

関連する問題