[[20181004183107]] 『ある列に入力されたら該当行をコピーする』(かか) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ある列に入力されたら該当行をコピーする』(かか)

Excelマクロ初心者です。過去質問とかぶっていたら申し訳ございません。。

ある表を作成しています。(B〜K列)(行6〜100?かなり下のほうまで作りたいです。)
全ての列に何かしら入力されたら行があれば、他のシートにその行をコピーしたいのですが、どうしたら良いのでしょうか・・・?
移動先では、行詰めてしまって問題ないです。

どなたかご教示ください。。

< 使用 Excel:Excel2003、使用 OS:unknown >


たたき台です
 Option Explicit

 Sub test()
    Dim tbl As Range
    Dim r As Range

    Set tbl = Sheets("sheet1").Range("B6:K100")

    For Each r In tbl.Rows
        If WorksheetFunction.CountA(r) Then
            r.Copy Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
        End If
    Next

 End Sub

(マナ) 2018/10/04(木) 18:52


マナ様
早々にご回答頂きありがとうございました。大変助かりました。

追加で質問させて頂きたいのですが、表中には数式が入っているのですが、
コピーの際、数式は無しで、値のみ引っ張っていきたいのですが、どうしたら良いでしょうか。

(かか) 2018/10/05(金) 08:57


また、コピーする際、指定の列のみコピーは出来ますでしょうか?

度々申し訳ないです。
(かか) 2018/10/05(金) 09:07


PasteSpecialメソッド (形式を選択して貼り付け)
条件分岐
If
Select Case
など検索すれば実例がたくさんありますので
マナさんのたたき台を基に更新すれば楽ですよ。

(隠居じーさん) 2018/10/05(金) 09:55


追伸
お解りだとは思いますが。
処理対象は100行目までですよ。
増やすなら、増やし方にもよりますが、もう一手、必要です。
最終行。。。なんかで検索!
いらぬお世話でしたら済みません。m(_ _)m

(隠居じーさん) 2018/10/05(金) 10:18


隠居じー様
ネットで検索して、何とか出来そうです。
とても助かりました。最終行に関しても、承知致しましたありがとうございます!
(かか) 2018/10/05(金) 13:24

>値のみ引っ張っていきたい
>指定の列のみコピー

表と転記先に同じ見出しがないとだめですが、
たたき台2です。

フィルターオプションを使います。
手作業でもよいですが、マクロでもできます。

・5行目が見出し
・転記先シートのA1:E1に抽出したい列の見出しが入力済み

とすると、こんな感じ。

 Sub test2()
    Dim tbl As Range
    Dim c As Range

    Set tbl = Sheets("sheet1").Range("B5:K100")
    Set c = Sheets("sheet1").Range("Z1:Z2")
    c(2).Formula = "=countblank(B6:K6)<10"

    tbl.AdvancedFilter xlFilterCopy, c, Sheets("sheet2").Range("A1:E1")

    c.ClearContents

 End Sub

(マナ) 2018/10/05(金) 18:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.