|    | 
     同じようなことで困っているのでこちらの続きで失礼いたします。 
 
Excel2002使用です。 
 
同じブック内の資料シート中C列に果物の名前の一覧があり、 
DATAシート中A列には上記集計対象と同じ果物の名前があり、 
H列にはA列の名前と対になるお店の名前が入っています。 
 
資料シートの一覧で順番にDATAシート上から 
 
「果物の名前 且 お店の名前のないもの」の件数 
 
を集計したく、SUMPRODUCTを使って集計しようとしました。 
 
ichinoseさんがご回答されていることを参考に作成してみたのですが、 
「型が一致しません」となってしまいます。 
 
Sub Test() 
  Dim WS_Data As Worksheet 
  Dim WS_In As Worksheet 
  Dim TRange As Range '集計対象範囲 
  Dim SfRange As String  '集計範囲1 
  Dim By2Range As String '集計範囲2 
  Dim SFB As String '集計名 
  Dim Bcnt As Integer 
   
  Set WS_Data = ThisWorkbook.Worksheets("DATA") 
  Set WS_In = ThisWorkbook.Worksheets("資料") 
  Set TRange = WS_In.Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp)) '資料範囲 
   
  With WS_Data 
    '集計範囲1 
    SfRange = .Name & "!" & .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp)).Address 
    '集計範囲2 
    By2Range = .Name & "!" & .Range(.Cells(3, 8), .Cells(.Rows.Count, 8).End(xlUp)).Address 
     
    '集計 
    For Each FERange In TRange 
      SFB = FERange.Value 
      Bcnt = Application.Evaluate( _ 
        "=SUMPRODUCT((" & SfRange & "=" & SFB & ")*(" & By2Range & "<>""""))") 
         
      MsgBox Bcnt 
    Next 
     
  End With 
End Sub 
 
ウォッチ式で確認したところ、以下のようになっていました。 
----------------------------------- 
SfRange="DATA!$A$2:$A$105" 
By2Range="DATA!$H$2:$H$105" 
SFB="りんご" 
----------------------------------- 
 
ウォッチ式の内容を代入して試したところ、エラーは出ないのですが、 
Bcntは0となってしまいました。 
 
代入するSfRangeとBy2Rangeを以下のように""を外してみたところ、 
正しい計算結果が得られました。 
----------------------------------- 
SfRange=DATA!$A$2:$A$105 
By2Range=DATA!$H$2:$H$105 
----------------------------------- 
 
範囲については日々変わっていくので固定することが出来ません。 
どうしたらいいかわかりますでしょうか。 
 
よろしくお願いいたします。 
 
 | 
     
    
   |