Excel - 別のシートから行をコピーする
問題
私は2つのExcelで作業しています、1つの分野は両方の優れた「SID」に共通です。 SIDの行をExcel Bから「ABC」と言ってコピーし、エクセルAの同じSIDの行「ABC」に追加する必要があります。
Excel Bには14枚のシートがあります。SIDを検索して行を取得する必要があるソース。
私の目の前には2つの課題があります。
- Excel AからSIDを1つ選び、14枚のExcel Bで検索します。
- 見つけたら、Excel Bの対応する行をExcel Bのコピーして、選択したSIDに追加します。
例えば:
エクセルA SIDメッセージ番号注文日ABC 43556 23/05/2009
エクセルBシート3 SID合計日数SDT XYZ 12 45 ABC 21 32
結果はExcel Aになります。
ABC 43556 23/05/2009 21 32
溶液
私はこの目的のためにあなたにマクロ「テスト」を与えています。 サンプルワークブックexcel A( "excel"と "A"の間にスペースがあることを忘れないでください)sheet1ここで、メインデータがあるので、A3から3番目に右にもう1つサンプルデータを追加します。
jkh 23456 5/30/2009
SAMPLEワークブックは両方とも保存して開いていなければなりません。
それからマクロを試してください(私はマクロ "test"の結果を元に戻す別のマクロ "undo"を与えました)
問題がある場合は、どのコードステートメントで問題とエラーメッセージがあるかを教えてください。
マクロをExcel AのVBエディタに駐車します(厳密には関係ないと考えています)。
サンプルブックのマクロをテストし、成功した場合は元のファイルのマクロを使用します。
元のファイルを安全にどこかに保管する前に、問題が発生した場合はファイルを検索できます。
マクロ1:
サブテスト()範囲としてDim r範囲としてc、整数値としてj、整数値としてj、範囲としてas k、範囲としてr1ワークブックの範囲としてr1( "excel A.xls")。ワークシート( "sheet1")セットr =範囲(.Range( "A2")、.Range( "A2")。End(xlDown))各cについてrx = c.ワークブックの値( "excel B.xls")j = .Worksheets.Count k = 1の場合.Worksheets(k)でj cfind = .Cells.Find(what:= x、lookat:= xlWhole)cfindが何もない場合はr1 = Range(cfind.Offset(0、1)、 cfind.End(xlToRight))r1.Copy GoTo pasting 'ワークシート(k)で終わる場合は次へk次のブックへの貼り付けは次のようにします。c.Offset(0、3).PasteSpecial次へc最初のブックの終わりサブ
マクロ2:
Sub undo()ワークブック( "excel A.xls")付きワークシート( "sheet1")範囲(.Range( "d1")、.Range( "d1")。End(xlToRight))EntireColumn.Delete End With終了サブ
注意
フォーラムでこのヒントを提供してくれたvenkat1926に感謝します。