Excel VBA質問箱 IV

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

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


54856 / 76732 ←次へ | 前へ→

【26660】Re:表の比較修正
回答  Jaka  - 05/7/13(水) 10:47 -

引用なし
パスワード
   こんにちは。
昨日は、削除の事は頭が回らなかったと書いたけど、正確には削除の条件を考えるのが面倒だったという事です。
なんか例題を見てみると、最終的にはSheet2(修正)にメインの使用個数が書き足してあるだけ見たいですが....。
この線で行くと、マクロなど必要ないように見えますが、
Sheet2(修正)のセルD2に下記関数を入れ必要な所までフィル。
=IF(ISNA(VLOOKUP(A2,Sheet1!$A$1:$D$7,4,0)),"",VLOOKUP(A2,Sheet1!$A$1:$D$7,4,0))

Sheet2(修正)のデータ部をコピーして、Sheet1(メイン)のデータ部に値だけ貼り付けでも出来ますけど。

>プログラム解説していただければ
うまく解説が出来ませんでした。
特別難しいことはしてないと思いますから、Match、 Offset、Resizeは、ヘルプを見てください。

>With Sheets("Sheet2")
Sheet2のA2からA列最終行までのセルを検索値としてループ
>For Each Cel In .Range("A2", .Range("A65536").End(xlUp))
   Sheet2セルの値と同じ物がSheet1.1列目の何番目にあるかチェック(エクセルのMatch関数を使用)
>  Mct = Application.Match(Cel.Value, Sheets("Sheet1").Columns(1), 0)

   変数MCTがエラーなら(同じ物が無ければ)
>  If IsError(Mct) Then
    Sheet1、A列最終行の次の行の1列から3列分にSheet2の検索値としたセルから3列分値を入れる。
>    Sheets("Sheet1").Range("A65536").End(xlUp).Offset(1).Resize(, 3).Value = _
>    Cel.Resize(, 3).Value
>  Else
    エラーでなければ何行目にあるかMctに行番号が入っているから、
    Sheet1のその行の1列から3列分にSheet2の検索値としたセルから3列分値を入れる。
>    Sheets("Sheet1").Range("A" & Mct).Resize(, 3).Value = _
>    Cel.Resize(, 3).Value
>  End If
>Next

0 hits

【26633】表の比較修正 こなつ 05/7/12(火) 16:20 質問
【26638】Re:表の比較修正 Jaka 05/7/12(火) 17:08 回答
【26647】Re:表の比較修正 こなつ 05/7/12(火) 18:51 お礼
【26660】Re:表の比較修正 Jaka 05/7/13(水) 10:47 回答
【26671】Re:表の比較修正 こなつ 05/7/13(水) 18:29 お礼

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