2016-08-11 16 views
1

私はこれについて複数の投稿を見てきましたが、私が何を探しているのかはわかりません。保存された配列から複数のシートを繰り返します。

私はさまざまなシートを繰り返し、各シートのデータをテーブルにフォーマットします。一見非常にシンプルですが、forループを使ってシートを簡単な反復のために配列に格納することに苦労しています。

私はそれに保存されている次のデータを持っている、メインからformatSheetsArrayに渡している:formatTablesArray = Array(lo.Name, wa.Name, sevenA.Name, oh.Name, at.Name, ob.Name, ra.Name, cvr.Name, ln.Name)

シートは、すべてのコード名は、より簡単に操作するために変更されましたが、今はどのように混乱していますアレイの観点からそれらを反復すべきである。ワークブックには他のシートがありますので、sheets.countを使用することはできません。For Each Worksheet In formatSheetArrayを使用しようとしましたが、私は今受け取ったのと同じエラーを受け取りました。これはエラー424オブジェクトが必要です。何かご意見は?

Private Sub FormatOiTables(ByVal formatSheetsArray As Variant, ByRef cmeBook As Workbook) 

    Dim loopCounter As Integer, lastRow As Integer 


    For loopCounter = 0 To UBound(formatSheetsArray) 

     lastRow = cmeBook.Sheets(formatSheetsArray(loopCounter)).Cells(formatSheetsArray(loopCounter).Rows.Count, "A").End(xlUp).Row 

    Next 


End Sub 
+0

'formatTablesArray'を設定するコードを表示できますか? –

+0

@SiddharthRoutそこには質問がありますが、実際にはうまくいくソリューションを実現できました。もし誰かがそれについての批評(私はすぐに投稿します)があれば、それを聞いてみたいと思う。 – StormsEdge

+1

'cmeDataBook'の代わりに' cmeBook'を使用しているためにエラーが発生しました –

答えて

0

あなたはワークシート・オブジェクトの配列を作成し、使用することができます。その後、

formatTablesArray = Array(lo, wa, sevenA....)

とは、私はちょうど、上記の問題のために働いてしまった

for each tbl in formaTablesArray 
    tbl. 
next 
0

ソリューションを行います。 @Siddhartも指摘したように、ワークブックの入力ミスは、最初はcmeBookと入力されていました。ありがとうございます!

Private Sub FormatOiTables(ByVal formatSheetsArray As Variant, ByRef cmeDataBook As Workbook) 

    Dim WshtNameCrnt As Variant 
    Dim lastRow As Integer 

    For Each WshtNameCrnt In formatSheetsArray 

     cmeDataBook.Sheets(WshtNameCrnt).Activate 

     With Worksheets(WshtNameCrnt) 

      lastRow = .Cells(Worksheets(WshtNameCrnt).Rows.Count, "A").End(xlUp).Row 

     End With 

     MsgBox (lastRow & " " & WshtNameCrnt) 

    Next WshtNameCrnt 


End Sub 
+1

元のコードが動作します。あなたの 'cmeBook'は' cmeDataBook'でなければなりません –

+0

また、 'Dim lastRow As Integer'を' Dim lastRow As Long'に変更したいかもしれません。 –

+0

@SiddharthRout最大のlastRowは本当に実現可能です約100行になります。私は各シート上に動的テーブルを作成するlastRowを探しています。 – StormsEdge

関連する問題