- ベストアンサー
エクセルVBA(LOOKUP関数)Win2000、Office2000
いつも関数(LOOKUP)を使って集計をしているのですが、これがVBAで一発処理できれば効率がよくなると思い、頑張ってコードを書き書きしてます。 が、どうもうまくいかきません。下に今書いているコードを書きます。やりたい内容がおわかりいただければいいのですが・・・よろしくお願いします。 Subtest() Dim ds,ss As Worksheet'(シート名) Dim Dlrow As Long'(DataSheetの最終行) Dim Slrow As Long'(DataSheetの最終行) Dim i,r,dAs Long’(行、列カウンタ) Set ds=Worksheets("DataSheet") Set ss=Worksheets("syukei") For DL row =1 To ds.Range("B65536").End(xlUp).Row 'DataSheetの行数判定 Next ForSLrow=1 To ss.Range("B65536").End(xlUp).Row '集計シートの行数判定 Next '現在セルにある関数→集計シートA3=LOOKUP(B3,DataSheet!3:H6308,DataSheet!C3:C6308) '対応する列 '検索値は全て、集計シートのB列 '検査範囲は全て、データシートのH列 ↓////※ここらへんから苦戦してます//// '集計シートのA列=データシートのC列 WithWorksheets("syukei") Fori=3ToSLrow '.Cells(i,1)="=Lookup(Cells(i,2),Worksheets(DS).cells3,8):cells(DLrow,8),worksheets(DS).cells(3.3):cells(DLrow:3)" Nexti EndWith '以降, 集計C列=データのI列のように対応する列毎に、上のコードで処理していこうと思っています。(もしかしてダサイやり方ですか?) 'J列以降は、以降集計J~AS列とデータR~BA列の+1列 'Forr=10to45→r=J~AS(10to45) 'Ford=18to53→d=R~BA(18to53) 'Fori=3toSLrow 'Cell(r,i)=Lookup・・・・・ 'nextr 'nextd 'nexti EndSub と、こんな感じで、頑張ってます。よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
補足
nishi6さん!ありがとうございました。 やはり、1行づつで良かったのですね。試しにしてみたらうまくはいったもののほんとにこれで良いのか・・・と不安だったもので・・・ これは、いろいろと使えそうです。大変助かりました。少しだけ仕組みが分かりました。後の今回分からなかったとこは勉強していきたいと思います。本当にありがとうございました。