人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

次の操作を行うマクロの構文を教えてください。
シート1 Range("A1")=1, Range("A2")=2,Range("A3")=3,Range("A4")=4,
シート2 Range("A1")=3, Range("A2")=4
シート1を検索してシート2に含まれない1、2の値ををシート2にとってきたい

よろしくお願いします。

●質問者: nmfo4n67
●カテゴリ:コンピュータ
✍キーワード:A1 A3 マクロ 操作 検索
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● p332
●29ポイント

下記のコードが素朴な書き方です。

一行目から、空白のセルにあたるまで繰り返し処理します。

処理速度を考えていない書き方なので、行数が数千行を超えると遅く感じるかもしれません。

Sub main()
 
 Dim Rng1 As Range
 Dim Rng2 As Range
 
 Set Rng1 = Sheets(1).Cells(1, 1)
 Set Rng2 = Sheets(2).Cells(1, 1)
 
 size1 = Rng1.CurrentRegion.Rows.Count
 size2 = Rng2.CurrentRegion.Rows.Count
 lastRow = size2
 
 For i = 1 To size1
 
 found = False
 For j = 1 To size2
 If Rng1(i, 1) = Rng2(j, 1) Then
 found = True
 Exit For
 End If
 Next
 
 If Not found Then
 lastRow = lastRow + 1
 Rng2(lastRow, 1) = Rng1(i, 1)
 End If
 
 Next
 
End Sub
◎質問者からの返答

size1 =

のところで

コンパイルエラー

変数が定義されていません

のメッセージがでます

アドバイスお願いします


2 ● sakura-fuma
●6ポイント

こうやってこうやってこうだ!!(意味不明WW


3 ● GreenStar
●28ポイント ベストアンサー

こんな感じ!!

Sub Macro1()
 Dim r1 As Range, r2 As Range, c As Variant, m As Object
 Set r1 = Worksheets("Sheet1").Range("A1:A" & Range("A65536").End(xlUp).Row): 'シート1のデータ範囲
 Set r2 = Worksheets("Sheet2").Range("A65536").End(xlUp): 'シート2のデータ範囲
 
 r2.Select: ' シート2選択!
 ActiveCell.Offset(1, 0).Select: ' あらかじめ書き込み位置へ移動!
 For Each c In r1: 'シート1から1つずつ取って来る!
 Set m = r2.Find(c): 'シート2上で探す!!
 If m Is Nothing Then: 'シート2に無ければ!
 ActiveCell.Value = c: '書き込んで!
 ActiveCell.Offset(1, 0).Select: ' 次書き込み位置へ移動!
 End If
 Next
End Sub
◎質問者からの返答

早速ありがとうございます。実行時に

コンパイルエラー

End ifに対するIfブロックがありません

のエラーメッセージが出ます。

アドバイスおねがいします


4 ● きゃづみぃ
●27ポイント
Sub settest()
 For a = 1 To 65536
 Debug.Print Worksheets("Sheet1").Cells(a, "A")
 If Worksheets("Sheet1").Cells(a, "A") = "" Then Exit For
 If Worksheets("Sheet2").Range("A1:A65536").Find(Worksheets("Sheet1").Cells(a, "A"), LookAt:=xlWhole) Is Nothing Then
 Worksheets("Sheet2").Range("A1").End(xlDown).Offset(1, 0) = Worksheets("Sheet1").Cells(a, "A")
 End If
 Next a
End Sub

A列のみやってます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ