Quantcast
Channel: 楽天 みんなで解決!Q&A 新着質問([技術者向] コンピューター/205)
Viewing all articles
Browse latest Browse all 29232

VBA 比較してリンク

$
0
0
初めまして。VBA初心者です。 まずはこちらを見て下さい。   Sheet1                Sheet2             A     B    C   D        A     B    C   D 1 大区分 中区分 名称       20 大区分 中区分 名称 2  A     a    あ   1    21  A     a   あ   1 3            い  2    22            い   2 4            う   3    23            う   3 5            え  4    24            お   5 6            お  5    25        b    あ   1→6 7        b    あ  6    26            い   2→7 8            い  7    27            う    3→8 9            う   8    28            お   5→10 10            え  9    29  B     a    か   11 11            お  10   30            き   12 12  B    a    か  11    31            け   14 13            き  12    32            こ    15 14            く   13    33       b    か    11→16 15            け  14    34            き    12→17 16            こ   15    35           け    14→19 17       b    か   16    36           こ    15→20 18            き   17 19            く   18 20            け   19 21            こ   20 元々関数を使用していたのですが、数があまりに多くなってきたため、VBAで処理できればと初めて作ってみましたが、途中で行き詰った為ご教授お願いします。 Sheet1,2にそれぞれ表があり、Sheet1が元となります。(行は1000行以上になることもあります。) それで、Sheet2の名称をSheet1の名称と比べ同じ場合、Sheet1のD列をSheet2のD列にリンクさせたいのです。 一応、色々見ながら下記のように組んでみたのですが、矢印の左側のようになってしまいます。 これを、右側のような結果にしたいのですが、なんとなく間違ってる箇所は分かるものの、どのようにしていいか分かりません。 これをどのようにしたらよろしいでしょうか?若しくは、他にやり方があれば教えて頂きたいです。 分かりづらい説明で申し訳ないですが、よろしくお願い致します。 sub test()  Dim i As Integer,maxrow As Integer  maxrow = Sheet2.Range("C" : Rows.Count).End(xlup).Row    For i = 1 To maxrow - 19      If Sheet1.Cells (1+i,3)=Sheet2.Cells(19+i,3) Then        Sheet2.Cells(19+i,4)="=Sheet1" & Sheet1.Cells(1 + i,3).Offset(0,1).Address      Else        Sheet2.Cells(19+i,4)="=Sheet1" & Sheet1.Cells.Find(Sheet2.Cells(19+i,3)) _                        .Offset(0,1).Address      End if    Next i End sub

Viewing all articles
Browse latest Browse all 29232

Trending Articles