Excel VBA質問箱 IV

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

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


54845 / 76732 ←次へ | 前へ→

【26671】Re:表の比較修正
お礼  こなつ  - 05/7/13(水) 18:29 -

引用なし
パスワード
   ▼Jaka さん:
>こんにちは。
>昨日は、削除の事は頭が回らなかったと書いたけど、正確には削除の条件を考えるのが面倒だったという事です。
>なんか例題を見てみると、最終的には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

ご丁寧な回答どうもありがとうございました。

 削除・増減については例題が悪くて申し訳ありませんでした
 実際は、修正用の表に対してマスター表は+20桁ぐらい
 追加していまして、修正用をそのままコピペすると
 追加分がずれてしまったりして収拾がつかなくなって
 しまうものですから(^^ゞなんとか 表の比較+行の削除
 と行の追加を自動化したかったんです。

 また、分からない時はいろいろとご教授お願いするかも
 しれませんが、宜しくお願いします。
 
 

1 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 お礼

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