|
みなさま、こんにちは。
取り敢えず、
>IndexだけなくVLOOKUPもできますけどこちらのほうがいいですか?
意図した結果が出ているのなら良いのでは?
今ひとつ処理内容が理解できていませんが、こういうことでしょうか?
Sub test()
Dim rngOrg As Range
Dim rngRes As Range
Dim c As Range
Dim i As Long
'変換前データのセル範囲を変数に設定
With Worksheets("Sheet1")
Set rngOrg = .Range(.Cells(1, 2), .Cells(65536, 1).End(xlUp).Offset(, 16))
End With
'変換後データ格納セルをクリア、セル範囲を変数に設定
'項目名コピー
With Worksheets("Sheet3")
Set rngRes = .Range(rngOrg.Address)
.UsedRange.Clear
.Cells(1, 1).Resize(rngOrg.Rows.Count).Value = rngOrg.Resize(, 1).Offset(, -1).Value
End With
'変換
i = 1
With Worksheets("Sheet2")
For Each c In rngOrg
rngRes(i).Value = .Cells(c.Value + 1, c.Column).Value
i = i + 1
Next c
End With
'オブジェクト解放
Set rngOrg = Nothing
Set rngRes = Nothing
End Sub
ちなみに、ループは回し始めたのと逆の順に Next を書くことになります。
|
|