|
Yuki様
ご丁寧なご回答有難う御座います。
>質問はよく考えて追加しないように解答者にとっては2重になりますから。
>ついでに性別も追加できるようにしておきました。
申し訳御座いません。
>使う場合は性別無しの下の行をコメントにして
>性別有りの下の行をコメントを外してください。
有難う御座います。
>御自分の質問だけでなく他の質問者の内容もチェックして
>自分だったらどう考えるかなとかしてみましょう。
>実践的で勉強になると思います。
そのように致します。
>' Dictionary に登録
> Set Dic = CreateObject("Scripting.Dictionary")
> For i = 2 To UBound(v)
> Dic(v(i, 1)) = i
> Next
このようにデータを、一旦、登録するのですね。
ここで、質問させて頂きました例は、6列しかないのですが、使っていますデータは、開示できないのですが、20列ぐらいあり、そのExcel シートも、現在、見直し中であり、変更される可能性が高いです。
>sht.Cells(1, 1).Resize(, 6).Value = Array("番号", "No.", "名前", "住所", "年齢", "特徴")
従いまして、
Sub macro1()
Dim LastRow As Long
LastRow = Worksheets("Sheet2").Range("A65536").End(xlUp).Row
'結果シートを準備
Worksheets("Sheet2").Copy after:=Worksheets("Sheet2")
ActiveSheet.Name = "RESULT"
'ファイル1から転記、不要な行を抹消
Range("C1:C" & LastRow).Formula = "=VLOOKUP(A1,Sheet1!A:D,3,FALSE)"
On Error Resume Next
Range("C1:C" & LastRow).SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete
Range("C1:C" & LastRow).Value = Range("C1:C" & LastRow).Value
End Sub
一旦、sheet2を、resulにコピーして、VLOOKUPコマンドを使って処理できないかと考えています。
上のコードを実行しますと、下記の「マクロ実行結果」になってしまいます。
理想の結果を得るには、コードのどこを修正すれば、良いでしょうか?
Shieet1
No. 名称 相対的強さ 研究者
F03 精神力 ∞ アドラー博士
F04 筋力 10^38 フランケンシュタイン博士
A01 重力 10^0 アインシュタイン博士
A02 電磁気力 10^38 マクスウエル博士
Sheet2 これが実際には20行あります。
ナンバー ネーム ボゾン ボゾン質量 関連力 方程式 到達距離 関係者 備考
A03 弱い力 W,Zボゾン 有り 放射能、核融合 ワインバーグ・サラム理論 有限 フェルミ、グラショー
A04 強い力 グルーオン 有り 原子力 標準理論 有限 グロス、湯川
A01 重力 重力子 無し 遠心力、重力 アインシュタイン方程式 無限 ニュートン、ヒルベルト、ワイル、グロスマン
A02 電磁気力 光子 無し 摩擦、モータ マクスウエル方程式 無限 ディラック、ファラデー
マクロ実行結果
A01 重力 10^0 無し 遠心力、重力 アインシュタイン方程式 無限 ニュートン、ヒルベルト、ワイル、グロスマン
A02 電磁気力 10^38 無し 摩擦、モータ マクスウエル方程式 無限 ディラック、ファラデー
理想
ナンバー ネーム 相対的強さ ボゾン質量 関連力 方程式 到達距離 関係者 備考
A01 重力 10^0 無し 遠心力、重力 アインシュタイン方程式 無限 ニュートン、ヒルベルト、ワイル、グロスマン
A02 電磁気力 10^38 無し 摩擦、モータ マクスウエル方程式 無限 ディラック、ファラデー
いろいろと、自分で考えて、試していました。お返事が遅くなって、すいません。
>すこし待ったらsimpleさんから回答が付いたとは思うけど待てなかったので
しょう。
初心者で、要領がよく解りませんでした。お許し願います。
|
|