2016-09-26 16 views
0

背景ヘッダ(VBA、EXCEL)として挿入テキスト配列に

私は、さまざまなビジネスユニットから財務データにプルするVBAマクロを作成しました。各ビジネスユニットの財務情報を集約した後

目的

ピボットテーブルレポートを準備する列ヘッダと行を挿入します。

APPROACH

  1. 1つの
  2. 挿入ヘッダアレイテキスト値によってダウン他のすべての行をシフトし、Excelシートの上部にある "ヘッダ" アレイ
  3. 挿入1行を定義するワークシート
  4. 定義します列に入れる

コードベース

Sub addHeaders() 

Dim ws As Worksheet 
Dim headers() As Variant 

'Define worksheet and desired headers 
Set ws = ThisWorkbook.Sheets("CONSOLIDATED") 
headers() = Array("Fiscal Year", "Month", "Month_Year", "Project", "Local Expense", "Base Expense") 


'Insert row for header placement 
Rows(1).Insert shift:=xlShiftDown 


'Insert headers 
With ws 
For i = LBound(headers()) To UBound(headers()) 
    .Cells(1, 1 + i).Value = headers(i) 
    Next i 
End With 


End Sub 

の問題(S)

  1. @ライン "変数またはブロック変数を持つオブジェクトが設定されていない" .Cells(1, 1 + i).Value = headers(i)

QUESTION

  • はなぜVBAは、私ははっきりと私はあなたはそれがあるコードを言っているところかもしれワークシートではないと思われる、またはSet ws = ThisWorkbook.Sheets("CONSOLIDATED")
+1

あなたはシートが 'ThisWorkbook'なく' ActiveWorkbook'であることを確認していますか? –

+0

編集:何らかの理由で、私がVBAエディタの外にいるとき、このコードは適切に実行されます。上のすべてのコードは動作します。不便のためのお詫び – jonplaca

答えて

2

を定義したとき(「WS」を仮定して)変数が設定されていないことを言っています実際にシート名が間違っていることを示します。 (ActiveWorkbookとおそらく混乱ThisWorkbook?)

そうのようなあなたはまた、再書き込みができコード:

Sub InsertHeaders() 

    Sheets("CONSOLIDATED").Cells(1).Resize(1, 6).Value = Array("Fiscal Year", "Month", "Month_Year", "Project", "Local Expense", "Base Expense") 

End Sub 
関連する問題