|
▼ぴん さん:
>シート1のA列(A1〜A50)に入力されている文字が、他シート(シート2〜8)に
>あるか?あったら、そのシート名をシート1のD列に書き出す。
○○の一つ覚えですが、Dictionary(辞書オブジェクト)を
使ったらどうでしょう
Sub Try1()
Dim i As Long
Dim c As Range, r As Range
Dim ss As String, sName As String
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
'シート2枚目以降のA列の値を
' そのシート名とともに辞書登録します
For i = 2 To Worksheets.Count
With Worksheets(i)
sName = .Name
Set r = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
For Each c In r
ss = c.Value
dic(ss) = dic(ss) & "," & sName 'A列値とシート名を登録
Next
End With
Next
'1枚目のシートのA列の値が辞書にあれば、
' D列に 出現シート名をカンマ区切りで表示します
With Worksheets(1)
Set r = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
For Each c In r
ss = c.Value
If dic.Exists(ss) Then
c(1, 4).Value = Mid$(dic(ss), 2)
End If
Next
End With
End Sub
|
|