[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『型が一致しません、を無くすには?』(ふみ)
教えて下さい。
下記コードで、該当するデータが有る場合は問題ないのですが、
データが無い場合、
Range("AA1").Resize(ObjDic.Count, 1).Value = Application.Transpose(ObjDic.keys)
のところで「型が一致しません」というエラーが出ます。
色々考えてみたのですが、解決方法がわかりません。
よろしくお願いします。
Dim ObjDic As Object '担当者を調べて担当者毎の予定工数と実績工数と発注数と図面枚数の合計をセルに記入 Dim Rng As Range Dim TgRng As Range
With Sheet2 'プログラムの工数 Set ObjDic = CreateObject("Scripting.Dictionary") Set TgRng = .Range("A1", .Cells(Rows.Count, 1).End(xlUp)) For Each Rng In TgRng If Rng.Value <> "" Then If Not ObjDic.exists(Rng.Value) Then ObjDic.Add Rng.Value, Empty End If Next Rng
Range("AA1").Resize(ObjDic.Count, 1).Value = Application.Transpose(ObjDic.keys) Range("AB1").Resize(ObjDic.Count, 1).Formula = "=SUMIF(Sheet2!A:A,AA1,Sheet2!I:I)" '予定工数 Range("AC1").Resize(ObjDic.Count, 1).Formula = "=SUMIF(Sheet2!A:A,AA1,Sheet2!Q:Q)" '実績工数 Range("AD1").Resize(ObjDic.Count, 1).Formula = "=SUMIF(Sheet2!A:A,AA1,Sheet2!Y:Y)" '発注数 Range("AE1").Resize(ObjDic.Count, 1).Formula = "=SUMIF(Sheet2!A:A,AA1,Sheet2!Z:Z)" '図面枚数
End With
1
Set ObjDic = Nothing Set TgRng = Nothing
< 使用 Excel:Excel2007、使用 OS:Windows7 >
該当するものがない場合は、何も処理しなくて終了してよければ、 Next の後ろで、
If ObjDic.Count = 0 Then MsgBox "該当するものがありません。" Exit Sub End If
のように中断すればどうでしょうか。 (Mook) 2014/09/16(火) 16:34
該当するものが無い場合は、このコードと同じコードが8コード続くので、
End Withの後の1に飛ばそうとして色々コードを考えていたのですが、
どうしてもうまくいきませんでした。
教えて頂いたコードを参考に
If ObjDic.Count = 0 Then
GoTo 1 End If
でうまくいきそうです。
ありがとう御座いました。
(ふみ) 2014/09/16(火) 16:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.