Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9799 / 76734 ←次へ | 前へ→

【72492】Re:数値範囲のデータから数値がその範囲にあるか、もしくは含むかを調べる方法
発言  kanabun  - 12/8/16(木) 0:37 -

引用なし
パスワード
   ▼UO3 さん:

>わたしも、領域と見なしてIntersectで判断することを一瞬考えたのですが
>もし、数値が200万といったものだと、行数をオーバしてしまうということと
>Sheet2の上限数値がSheet1の下限数値と同じなら、重なってはいないと見なすという
>条件があって、ギブアップしました。
単純に 1セルだけ重なってるだけだったら、「ハズレ」と判定
と単純化しましたが、やっぱり 却下ですかねェ

以下はこの考えは変えず、
A列が chr1〜chr3 などのばあいです。

Sub test2()
  Dim dic As Object
  Dim i As Long, n As Long
  Dim r As Range, t As Range, c As Range
  Dim v, ID
  
  Set dic = CreateObject("Scripting.Dictionary")
  Set r = Worksheets("Sheet1").Cells(1).CurrentRegion
  v = Intersect(r, r.Offset(1)).Value
  With Excel.Range("A1")
    For i = 1 To UBound(v)
      If Not dic.Exists(v(i, 1)) Then
        Set dic(v(i, 1)) = _
          CreateObject("Scripting.Dictionary")
      End If
      Set dic(v(i, 1))(v(i, 4)) = Excel.Range( _
           .Offset(v(i, 2)), .Offset(v(i, 3)))
    Next
    
    Set r = Worksheets("Sheet2").Cells(1).CurrentRegion
    v = Intersect(r, r.Offset(1)).Value
    For i = 1 To UBound(v)  'Sheet2 2行目から
      v(i, 4) = Empty
      If dic.Exists(v(i, 1)) Then
        Set t = Excel.Range( _
           .Offset(v(i, 2)), .Offset(v(i, 3)))
        v(i, 4) = "ハズレ"
        For Each ID In dic(v(i, 1)).Keys()
          Set c = Nothing
          On Error Resume Next
          Set c = Intersect(dic(v(i, 1))(ID), t)
          On Error GoTo 0
          If Not c Is Nothing Then
            If c.Count > 1 Then v(i, 4) = ID
            Exit For
          End If
        Next
      End If
    Next
  End With
  r.Item(2, 1).Resize(UBound(v), 4).Value = v
    
End Sub

1 hits

【72485】数値範囲のデータから数値がその範囲にあるか、もしくは含むかを調べる方法 T.K 12/8/15(水) 20:24 質問
【72486】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/15(水) 22:09 発言
【72489】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/15(水) 22:38 発言
【72491】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/15(水) 22:48 発言
【72492】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/16(木) 0:37 発言
【72493】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/16(木) 0:51 発言
【72494】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/16(木) 8:16 発言
【72495】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/16(木) 9:03 発言
【72500】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/16(木) 12:54 発言
【72505】Re:数値範囲のデータから数値がその範囲に... UO3 12/8/17(金) 21:25 発言
【72596】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/27(月) 21:46 質問
【72598】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/27(月) 23:55 発言
【72602】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/28(火) 9:51 質問
【72603】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 10:07 発言
【72605】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 10:12 発言
【72606】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/28(火) 10:38 発言
【72607】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 11:27 お礼
【72608】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 11:56 お礼
【72630】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 19:29 発言
【72631】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 19:43 発言
【72612】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 15:49 質問
【72613】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/28(火) 18:37 質問
【72628】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 18:53 発言
【72629】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 19:12 発言
【72632】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 20:17 発言
【72634】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 21:35 発言
【72635】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/29(水) 21:40 発言
【72657】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/31(金) 15:49 発言
【72659】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/31(金) 16:25 発言
【72660】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/31(金) 17:30 質問
【72664】Re:数値範囲のデータから数値がその範囲に... kanabun 12/8/31(金) 19:35 発言
【72666】Re:数値範囲のデータから数値がその範囲に... T.K 12/8/31(金) 19:45 お礼

9799 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free