|
▼はるまき さん:
>例えば、下のようにA列に縦に並んだデータのシートが数十枚あります。
>
>その各シートのデータの先頭の値と、
>指定する値(複数あります)に当てはまったデータだけを新しいシートに抜き出す方法はありますでしょうか?
>
新しいシートを追加していますが実行する度に追加しますので
一番左 Worksheets(1) を 最初から手動で追加してそれを参照すれば
宜しいかと思います
Option Explicit
Sub TEST()
Dim i As Long
Dim j As Long
Dim v1 As Variant
Dim s As String
Dim fd As String
Dim sht As Worksheet
fd = "0123" ' 検索値
' 新しいシートの追加1番前へ 毎回追加される
Set sht = Worksheets.Add(Before:=Worksheets(1))
' 手動で追加してある場合は
' Set sht = Worksheets(1)
' sht.Cells.ClearContents
' 2番目のシートから検索
For i = 2 To Worksheets.Count
With Worksheets(i)
v1 = .Range("A1").CurrentRegion.Resize(, 1).Value
v1 = Application.Transpose(v1)
s = Join(v1, "")
If Len(fd) <= Len(s) Then s = Left(s, Len(fd))
If StrComp(fd, s, vbTextCompare) = 0 Then
' あったら新しいシートに
j = j + 1
sht.Cells(j, 1) = .Name
sht.Cells(j, 2) = s
End If
End With
Next
End Sub
|
|