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に感謝します。

前の記事 次の記事

トップのヒント