Page 822 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼列 検索 nori 03/2/28(金) 2:37 ┗Re:列 検索 Jaka 03/2/28(金) 16:55 ┗Re:列 検索 nori 03/3/2(日) 11:08 ┗Re:列 検索 Jaka 03/3/3(月) 17:14 ┗Re:列 検索 nori 03/3/4(火) 15:14 ─────────────────────────────────────── ■題名 : 列 検索 ■名前 : nori <miyagawa2103@ybb.ne.jp> ■日付 : 03/2/28(金) 2:37 -------------------------------------------------------------------------
質問します。同じフォルダーの下にBOOK1とBOOK2があります。 BOOK1には セルA1からD10の表があります。 セルA1 東京 セルA2 大阪 セルA3 広島 ・ ・ セルA10 札幌が入っていますが B1からD10まではデータや計算式が入力されています。 その表に 別BOOK2のデータH1からH10を、セルH1と同じ名称セル (たとえば広島であればセルA3)の下に 値のコピー貼り付けしたいのですが??? どなたか知恵を貸してください。 |
>どなたか知恵を貸してください。 こんにちは。 このコードでBook1シート1 H1に書いてある文字がBook2シート1 A1:A10の何行目に書いてあるか解ります。 Mj = Workbooks("BOOK1.xls").Sheets("Sheet1").Range("H1").Value Gy = Application.Match(Mj, Workbooks("BOOK2.xls").Worksheets("Sheet1").Range("A1:A10").Value, 0) If IsError(Gy) = False Then MsgBox Mj & "は、Book2の" & Gy & "行にあります。" End If 貼り付けに付いては、良くわかんないけどこんな感じで良いんじゃないかと思います。 Workbooks("BOOK2.xls").Worksheets("Sheet1").Range("A" & Gy + 1).Resize(10).Value = _ Workbooks("BOOK1.xls").Sheets("Sheet1").Range("H1:H10").Value がんばってください。 |
Jakaさん、”おはようございます。” 早速ありがとうございました。 しかし、がんばってやってみましたが、私の力不足なのと 質問の内容が少し不足な点があると思いましたので すこし質問形式を変えてみたいと思います。 よろしくおねがいいたします。 次のようなことをしたいのですが・・・・ <作業内容> BOOK1で作ったデータを BOOK2にコピー貼り付け(値貼り付け)するマクロです。 <貼り付けるところの選定> BOOK1 のセルA1に記入してある番号(例えば123とすれば)を BOOK2 の行1のいちばん右の空白セル (例えばA1からD1にデータがはいっていれば次のE1) にその番号(123)を入力したい。 <貼り付けるデータ> BOOK1 のB3からB10のデータを BOOK2 の上記の番号(123)の下に(値で)貼り付け。 (上記例で言えばE3からE10に) このようなことです。 また、理解不足な点は初心者なので Sub …() ・・・・・・ END Sub がないと動かないことすらわからないので できれば構文をコピー貼り付けすれば できるようにおねがいします。 ▼Jaka さん: >>どなたか知恵を貸してください。 > >こんにちは。 > >このコードでBook1シート1 H1に書いてある文字がBook2シート1 A1:A10の何行目に書いてあるか解ります。 > >Mj = Workbooks("BOOK1.xls").Sheets("Sheet1").Range("H1").Value >Gy = Application.Match(Mj, Workbooks("BOOK2.xls").Worksheets("Sheet1").Range("A1:A10").Value, 0) >If IsError(Gy) = False Then > MsgBox Mj & "は、Book2の" & Gy & "行にあります。" >End If > > >貼り付けに付いては、良くわかんないけどこんな感じで良いんじゃないかと思います。 > >Workbooks("BOOK2.xls").Worksheets("Sheet1").Range("A" & Gy + 1).Resize(10).Value = _ >Workbooks("BOOK1.xls").Sheets("Sheet1").Range("H1:H10").Value > >がんばってください。 |
良く解りませんが、取りあえず作ってみました。 Sub jiji() Dim B1ER As Long, B2EC As Long, B2macth As Variant B1ER = Workbooks("Book1.xls").Worksheets("Sheet1").Range("A65536").End(xlUp).Row For Each Cel In Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1:A" & B1ER) B2EC = Workbooks("Book2.xls").Worksheets("Sheet1").Range("IV1").End(xlToLeft).Column B2macth = Application.Match(Cel.Value, Workbooks("BOOK2.xls").Worksheets("Sheet1").Range("A1").Resize(, B2EC).Value, 0) If IsError(B2macth) = True Then Workbooks("Book2.xls").Worksheets("Sheet1").Cells(1, B2EC + 1).Value = Cel.Value Workbooks("Book2.xls").Worksheets("Sheet1").Cells(3, B2EC + 1).Resize(8).Value = _ Workbooks("Book1.xls").Worksheets("Sheet1").Range("B3:B10").Value Else Workbooks("Book2.xls").Worksheets("Sheet1").Cells(3, B2macth).Resize(8).Value = _ Workbooks("Book1.xls").Worksheets("Sheet1").Range("B3:B10").Value End If Next End Sub |
jakaさんありがとうございました。 思っていたとおりのものです。 データの重複記載も防ぐものも 入れていただきありがとうございました。 また、よろしくお願いします。・・・・ ▼Jaka さん: >良く解りませんが、取りあえず作ってみました。 > >Sub jiji() > Dim B1ER As Long, B2EC As Long, B2macth As Variant > B1ER = Workbooks("Book1.xls").Worksheets("Sheet1").Range("A65536").End(xlUp).Row > For Each Cel In Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1:A" & B1ER) > B2EC = Workbooks("Book2.xls").Worksheets("Sheet1").Range("IV1").End(xlToLeft).Column > B2macth = Application.Match(Cel.Value, Workbooks("BOOK2.xls").Worksheets("Sheet1").Range("A1").Resize(, B2EC).Value, 0) > If IsError(B2macth) = True Then > Workbooks("Book2.xls").Worksheets("Sheet1").Cells(1, B2EC + 1).Value = Cel.Value > Workbooks("Book2.xls").Worksheets("Sheet1").Cells(3, B2EC + 1).Resize(8).Value = _ > Workbooks("Book1.xls").Worksheets("Sheet1").Range("B3:B10").Value > Else > Workbooks("Book2.xls").Worksheets("Sheet1").Cells(3, B2macth).Resize(8).Value = _ > Workbooks("Book1.xls").Worksheets("Sheet1").Range("B3:B10").Value > End If > Next >End Sub |