2016-08-05 32 views
1

を指定するにもかかわらず、私は次のコードを持っている現在のシート上でマクロを実行:Excelはコードがそうでなければ

Sheets("Booked").Range("$A$1:$H$379").AutoFilter Field:=8, Criteria1:= _ 
     ">=" & StartDat 
Sheets("Booked").Range("$A$1:$H$379").AutoFilter Field:=9, Criteria1:= _ 
     "<=" & EndDat 
CorBookCol = Worksheets("Booked").Cells.Find("Booked Impressions").Address 

BookAnswer = Worksheets("Booked").Application.WorksheetFunction.Subtotal(9, Range(CorBookCol, Range(CorBookCol).End(xlDown))) 
MsgBox (BookAnswer) 
Debug.Print "------------------" 
Debug.Print BookAnswer & " - Booked Answer" 

目標はマクロ取得私の「予約された」ワークシートの列の小計を持っており、それを使用することです私の現在のシートからの他の数字と組み合わせた数字。しかし、マクロが "Booked"ワークシートから小計を見つけるように指定したとしても、現在のシート上の "BookedCorCol"アドレスの小計しか見つけることはできません。これに関する助けがあれば幸いです。

答えて

1

範囲を完全に修飾する必要があります。 Rangeオブジェクトの前に.(ドット)が表示されますか?あなたはそれをしない場合範囲はあなたが小計関数に渡す2つのRangeのコールを修飾するのを忘れActiveSheet

With Worksheets("Booked") 
    BookAnswer = .Application.WorksheetFunction.Subtotal(9, _ 
       .Range(CorBookCol, .Range(CorBookCol).End(xlDown))) 
End With 
1

を参照します。

With Sheets("Booked") 
    .Range("$A$1:$H$379").AutoFilter Field:=8, Criteria1:=">=" & StartDat 
    .Range("$A$1:$H$379").AutoFilter Field:=9, Criteria1:="<=" & EndDat 
    CorBookCol = .Cells.Find("Booked Impressions").Address 

    BookAnswer = Application.WorksheetFunction.Subtotal(9, .Range(CorBookCol, .Range(CorBookCol).End(xlDown))) 
End With 
MsgBox (BookAnswer) 
Debug.Print "------------------" 
Debug.Print BookAnswer & " - Booked Answer" 
+0

回答ありがとうございました! –

関連する問題