検索、コピー、貼り付けするマクロを作成する方法

問題

これが私がやりたいことです。 行ごとに顧客データを含むワークシートがあり、データワークシートから顧客情報を自動入力したい請求書付きのワークシートもあります。

私が伝えた参照番号を検索し、顧客データを含む行を請求書ワークシートにコピーして、必要な各フィールドを請求書にコピーするマクロを作成します(これは自分で行います)。

参照番号を検索して行を選択し、その行を他のワークシートにコピーして貼り付けるマクロを作成しました。 私の問題は、小さな検索ボックスに新しい参照番号を入力しようとしたときに、マクロを設定した参照番号を検索し、マクロを設定した最初の行だけを参照するようにしたことです。

私はそれを言うことができると思います:

参照番号を検索します。参照番号をコピーして他のワークシートに貼り付けます。次に、Shiftキーを押しながらデータを選択してコピーし、他のワークシートに貼り付けます。 初期範囲と参照番号を参照し続けます。

助けてください。

これが私のこれまでのところです。 私は親切な人です。 最後にアクティブになっているスクロールは、請求書の下にあるマクロをスクロールして貼り付けることだけです。後でデータを取得することができます。

 範囲( "AM5:AS5")を選択します。ActiveCell.FormulaR1C1 = "33629" Sheets( "Sheet2")を選択します。Cells.Find(What:= "33629"、変更後:= ActiveCell、LookIn:= xlFormulas、LookAt _:= xlPart、SearchOrder:= xlByRows、SearchDirection:= xlNext、MatchCase:= _ False、SearchFormat:= False)行のアクティブ化( "6:6")。範囲の選択( "C6")。選択をアクティブにします。 ActiveWindow.SmallScroll Downを選択します。= 12 ActiveWindow.ScrollRow = 14 ActiveWindow.ScrollRow = 16 ActiveWindow.ScrollRow = 17 ActiveWindow.ScrollRow = 18 ActiveWindow.ScrollRow = 19 ActiveWindow.ScrollRow = 20 ActiveWindow.ScrollRow = 20 .ScrollRow = 21 ActiveWindow.ScrollRow = 22 ActiveWindow.ScrollRow = 23 ActiveWindow.ScrollRow = 25 ActiveWindow.ScrollRow = 26 ActiveWindow.ScrollRow = 27 ActiveWindow.ScrollRow = 29 ActiveWindow.ScrollRow = 31 ActiveWindow.ScrollRow = 23 .ScrollRow = 33 ActiveWindow.ScrollRow = 36 ActiveWindow.ScrollRow = 38 ActiveWindow.ScrollRow = 40 ActiveWindow.ScrollRow = 42 iveWindow.ScrollRow = 45 ActiveWindow.ScrollRow = 47 ActiveWindow.ScrollRow = 49 ActiveWindow.ScrollRow = 53 ActiveWindow.ScrollRow = 54 ActiveWindow.ScrollRow = 55 ActiveWindow.ScrollRow = 57 ActiveWindow.ScrollRow = 57 ActiveWindow.ScrollRow = 47 ActiveWindow.ScrollRow = 59 ActiveWindow.ScrollRow = 60 ActiveWindow.ScrollRow = 62 ActiveWindow.ScrollRow = 63 ActiveWindow.ScrollRow = 64 ActiveWindow.ScrollRow = 65 ActiveWindow.ScrollRow = 68 ActiveWindow.ScrollRow = 68 ActiveWindow.ScrollRow = 70 ActiveWindow.ScrollRow = 71 ActiveWindow.ScrollRow = 72 ActiveWindow.ScrollRow = 74 ActiveWindow.ScrollRow = 75 ActiveWindow.ScrollRow = 76 ActiveWindow.ScrollRow = 78 ActiveWindow.ScrollRow = 78 ActiveWindow.ScrollRow = 80 ActiveWindow.ScrollRow = 82 ActiveWindow.ScrollRow = 83 ActiveWindow.ScrollRow = 84 ActiveWindow.ScrollRow = 85 ActiveWindow.ScrollRow = 87 ActiveWindow.ScrollRow = 88 ActiveWindow.ScrollRow = 89 ActiveWindow.ScrollRow = 91 ActiveWindow.ScrollRow = 93 ActiveWindow.ScrollRow = 94 ActiveWindow.ScrollRow = 95 ActiveWindow.ScrollRow = 96 ActiveWindow.ScrollRow = 97 = 98 ActiveWindow.ScrollRow = 99 ActiveWindow.ScrollRow = 100 ActiveWindow.ScrollRow = 102 ActiveWindow.ScrollRow = 104 ActiveWindow.ScrollRow = 106 ActiveWindow.ScrollRow = 107 ActiveWindow.ScrollRow = 109 ActiveWindow.ScrollRow = 111 ActiveWindow.ScrollRow = 111 = 112 ActiveWindow.ScrollRow = 113 ActiveWindow.ScrollRow = 114 ActiveWindow.ScrollRow = 115 ActiveWindow.ScrollRow = 118 ActiveWindow.ScrollRow = 119 ActiveWindow.ScrollRow = 120 ActiveWindow.ScrollRow = 122 ActiveWindow.ScrollRow = 124 ActiveWindow.ScrollRow = 124 = 125 ActiveWindow.ScrollRow = 126 ActiveWindow.ScrollRow = 127 ActiveWindow.ScrollRow = 128 ActiveWindow.ScrollRow = 129 ActiveWindow.ScrollR ow = 130 ActiveWindow.ScrollRow = 131 ActiveWindow.ScrollRow = 132 ActiveWindow.ScrollRow = 134 ActiveWindow.ScrollRow = 135 ActiveWindow.ScrollRow = 136 ActiveWindow.ScrollRow = 137 ActiveWindow.ScrollRow = 139 ActiveWindow.ScrollRow = 141アクティブウィンドウ。 ScrollRow = 142 ActiveWindow.ScrollRow = 143 ActiveWindow.ScrollRow = 144 ActiveWindow.ScrollRow = 146 ActiveWindow.ScrollRow = 147 ActiveWindow.ScrollRow = 148 ActiveWindow.ScrollRow = 149 ActiveWindow.ScrollRow = 150 ActiveWindow.ScrollRow = 151 ScrollRow = 152 ActiveWindow.ScrollRow = 153 ActiveWindow.ScrollRow = 154 ActiveWindow.ScrollRow = 156 ActiveWindow.ScrollRow = 157 ActiveWindow.ScrollRow = 158 ActiveWindow.ScrollRow = 159 ActiveWindow.ScrollRow = 160範囲( "A194") ActiveSheetを選択します。End Sub 

溶液

完全な論理は明確ではありません。 私はあなたが変更を理解できるようにあなたのマクロを "修正"しただけです(マクロ全体を私はたくさん微調整することができますが)。

マクロを起動すると、マクロは、あなたがどのタイプの番号を検索したいのかを請求書番号eに尋ねます。 33629

しかし、問題は1つあります。 シート2に33629が見つかり、行全体をコピーする

シート1(2)に移動し、2行目の最初のセルがA194の行に上記の行を貼り付けます。 これまでのところ大丈夫です。

しかし、あなたがsheet1(2)のどこに行をコピーしたいのか、別の番号を選択すると。 これは明らかではありません。

元のワークブックをどこかで安全に保管して、取り出せるようにすることをお勧めします。

その後、マクロを実行して、問題ないかどうかを確認してください。 それが大丈夫ならそれでは上記の未定義の太字で私の気持ちに答えなさい。 マクロはさらに修正することができます。

マクロでは、いくつかの行の始めに単一のアポストロフィを入れて、それらが作動可能にならないようにします。 マクロを理解したら、後でこれらの行を削除できます。

現段階でのマクロは

 Sub TEST()Dim j As Double j = InputBox( "必要な数を入力してください例えば33629") 'Range( "AM5:AS5")を選択してください。' ActiveCell.FormulaR1C1 = "33629" Sheets( "Sheet2")。セルを選択してください.Find(What:= j、LookIn:= xlFormulas、LookAt _:= xlPart、SearchOrder:= xlByRows、SearchDirection:= xlNext、MatchCase:= _ False、SearchFormat:= False)。 'Rows( "6:6"をアクティブにする'範囲の選択( "C6")。'選択をアクティブにします。ActiveCell.EntireRow.Copyワークシート( "sheet1(2)")。範囲の選択( "A194")PasteSpecial End Sub 

注意

フォーラムでこのヒントを提供してくれたvenkat1926に感謝します。

前の記事 次の記事

トップのヒント