Excel VBA質問箱 IV

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

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


64172 / 76732 ←次へ | 前へ→

【17142】Re:INDEX関数の繰り返し処理
質問  さる E-MAIL  - 04/8/23(月) 21:13 -

引用なし
パスワード
   ▼Asaki さん:
ありがとうございます。
申し訳はありません。説明不足で迷惑かけて大変申し訳はありません。
実行してみたらエラー13(型が一致しません)と表示してありますが
もしかしたらシート1が氏名だけなく年齢と社員番号、性別、備考1備考2備考3が
あります。これを変換しないてこのままでコピーして以降は変換してコピーします。
 シート1(データ元)
 A  B  C  D   E  F  G  H  I  J K L M N L O 〜 BM
氏名 社番 年齢 性別 ID 備1 備2 備3 A-1 2 3 4 5 6 7 8....65まで 
ss  001  25  1  001        2  2 2 1 2 3 4 3.... 
si  002  23  2  002        2  1 3 2 4 2 2 3....
ai  003  20  2  003        2  3 1 3 2 1 3 3....
oh  004  50  2  004        3  2 3 3 3 2 1 1....
aa  005  33  1  005        3  2 1 3 2 3 3 1....
    ・
    ・

シート2(検査範囲用)
A BCDEFGHIJ K L M N L O P
− 12345678910111213141516〜65まで データ元の列と順番通りです。 
1点333300030 3 0 3 0 0 3 3...   縦A列の1234は点数です。
2点222211121 2 1 2 1 1 2 2... B2セルは2点ならばB列にA列の2点に当てはまり
3点111122212 1 2 1 2 2 1 1... 2点なります。
4点000033303 0 3 0 3 3 0 0...

シート3(データ変換後)
 A  B  C  D   E  F  G  H  I  J K L M N L O 〜 BM
氏名 社番 年齢 性別 ID 備1 備2 備3 A-1 2 3 4 5 6 7 8....65まで 
ss  001  25  1  001        2  2 2 3 2 2 3 1.... 
si  002  23  2  002        3  3 1 2 3 1 1 1....
ai  003  20  2  003        2  1 3 1 1 0 2 1....
oh  004  50  2  004        1  2 1 1 2 1 0 3....
aa  005  33  1  005        1  2 3 1 1 2 2 3....

前より詳しく説明しますのでよろしくお願いします。
     ・

B2セルにデータ元を読み取ってシート2の元で置換してシート3(シート3へコピー?表示?)へ表示して行が空欄するまで繰り返しします

2→シート2にVLOOKUP関数で一致したら置換してシート3へ表示します。

>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 を書くことになります。
知らなかった。いい勉強になりました。

2 hits

【17094】INDEX関数の繰り返し処理 さる 04/8/22(日) 0:30 質問
【17095】Re:INDEX関数の繰り返し処理 Asaki 04/8/22(日) 0:42 回答
【17097】Re:INDEX関数の繰り返し処理 さる 04/8/22(日) 1:40 質問
【17098】Re:INDEX関数の繰り返し処理 さる 04/8/22(日) 10:26 質問
【17103】Re:INDEX関数の繰り返し処理 さる 04/8/22(日) 19:34 質問
【17104】Re:INDEX関数の繰り返し処理 さる 04/8/23(月) 0:55 質問
【17111】とりあえず・・・ つん 04/8/23(月) 11:47 回答
【17143】Re:とりあえず・・・ さる 04/8/23(月) 22:49 お礼
【17115】Re:INDEX関数の繰り返し処理 Asaki 04/8/23(月) 13:07 回答
【17142】Re:INDEX関数の繰り返し処理 さる 04/8/23(月) 21:13 質問
【17146】Re:INDEX関数の繰り返し処理 Asaki 04/8/24(火) 0:13 回答
【17148】Re:INDEX関数の繰り返し処理 さる 04/8/24(火) 0:47 質問
【17149】Re:INDEX関数の繰り返し処理 Asaki 04/8/24(火) 0:54 回答
【17150】Re:INDEX関数の繰り返し処理 Asaki 04/8/24(火) 0:56 発言
【17158】Re:INDEX関数の繰り返し処理 さる 04/8/24(火) 12:05 質問
【17162】Re:INDEX関数の繰り返し処理 Asaki 04/8/24(火) 12:35 回答
【17192】Re:INDEX関数の繰り返し処理 さる 04/8/24(火) 17:50 質問
【17220】Re:INDEX関数の繰り返し処理 さる 04/8/24(火) 22:42 質問
【17221】Re:INDEX関数の繰り返し処理 さる 04/8/24(火) 23:03 お礼
【17224】Re:INDEX関数の繰り返し処理 Asaki 04/8/25(水) 0:35 回答
【17248】Re:INDEX関数の繰り返し処理 さる 04/8/25(水) 17:56 質問
【17251】Re:INDEX関数の繰り返し処理 Asaki 04/8/25(水) 18:18 回答
【17261】Re:INDEX関数の繰り返し処理 さる 04/8/25(水) 23:19 質問
【17262】Re:INDEX関数の繰り返し処理 Asaki 04/8/25(水) 23:25 回答
【17264】Re:INDEX関数の繰り返し処理 さる 04/8/25(水) 23:43 お礼

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