|
▼カンジ さん:
>列検索を列を変化させながら行おうとしていますが、列の変化がうまく
>対応できていません。
何をどうループしているのか、よくわかりません。
コードの途中に出てくる 「シート名1」という変数は
どこで宣言されているのですか?
このままでは コンパイルを通りませんよね?
適当に変数を書き換えてインデントをつけてみると
以下のようになります。
Sub 列検索でデータを取り込む2()
Dim i As Long
Dim j As Long
Dim h As Long
Dim S As String
Dim c As Range
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Set WS1 = Worksheets("sheet1")
Set WS2 = Worksheets("sheet2")
h = 1
With WS1
For i = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
S = .Cells(i, 1).Value
For j = 5 To 38 Step 3
Set c = WS2.Columns(h).Find(S)
'1列置きに検索 ここのhが対応しない
WS1.Cells(h, j).Value = c.Offset(, 1).Value
h = h + 2
Next j
Next
End With
End Sub
で、野郎としていることを日本語でより具体的に説明されると、
質問する方も回答する方も前へすすめると思います。
現状、
[Sheet1]のA列の値 S で
[Sheet2]の h番目の列から検索 (3行目から順次くりかえし)
見つかったセルc([Sheet2]h列)の右隣りのセルの値を
[Sheet1] の(h行?、j列?) に転記する
(以上同じ検索を For j = 5 To 38 Step 3 回 繰り返す)
という、意味不明なコードになってます。
|
|