No.4ベストアンサー
- 回答日時:
以下のように修正してください。
------------------------------------------------------------------------------
Sub Sample()
Dim 元行 As Long
Dim 先行 As Long
Sheets("Sheet2").Select
Range(Cells(3, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Sheets("Sheet1").Select
先行 = 3
For 元行 = 3 To Cells(Rows.Count, 7).End(xlUp).Row Step 2
If Cells(元行, 7).Value = "AA" Then
Range(Cells(元行, 1), Cells(元行 + 1, Columns.Count)).Copy
Sheets("Sheet2").Select
Cells(先行, 1).Activate
ActiveSheet.Paste
先行 = 先行 + 2
Sheets("Sheet1").Select
End If
Next
Application.CutCopyMode = False
End Sub
------------------------------------------------------------------------------
No.6
- 回答日時:
No.5 の追加です。
ループなどを使って範囲指定する時は「Range("左上列記号左上行番号:右下列記号右下行番号")」ではなく「Range(Cells(左上行番号,左上列番号),Cells(右下行番号,右下列番号))」を良く使います。こちらも列を数字で指定できるのでループが簡単に出来るからです。
No.5
- 回答日時:
回答ではありません。
No.3とNo.4 の一部解説です。ループなどを使ってセルを指定する時は「Range("列記号行番号")」ではなく「Cells(行番号,列番号)」を良く使います。列を数字で指定できるのでループが簡単に出来るからです。
ちなみに「オプション」「数式」「数式の処理」「R1C1 参照形式を使用する」にチェックを入れると列記号ではなく列番号で表示されるようになります。(プログラムを組む時に変えたままにして怒られた事があります)
「Rows.Count」はエクセルの最終行番号です。
「Columns.Count」はエクセルの最終列番号です。
エクセルのバージョンに合わせて変わってくれるので2003以前とか2007以降とか気にせず使えます。
「Cells(Rows.Count, 列番号).End(xlUp).Row」は列番号で指定された列の値の入っている最終行になります。注意点は、列に何もない時も1行目にだけ値が入っている時も「1」になります。
No.3
- 回答日時:
とりあえずこんな形で良いのでは?
------------------------------------------------------------------------------
Sub Sample()
Dim 元行 As Long
Dim 先行 As Long
Sheets("Sheet2").Select
Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Sheets("Sheet1").Select
先行 = 2
For 元行 = 2 To Cells(Rows.Count, 7).End(xlUp).Row Step 2
If Cells(元行, 7).Value = "AA" Then
Range(Cells(元行, 1), Cells(元行 + 1, Columns.Count)).Copy
Sheets("Sheet2").Select
Cells(先行, 1).Activate
ActiveSheet.Paste
先行 = 先行 + 2
Sheets("Sheet1").Select
End If
Next
Application.CutCopyMode = False
End Sub
------------------------------------------------------------------------------
No.2
- 回答日時:
マクロなら、この程度で良いかと思います。
'//標準モジュール
Sub MergeCellsCopy()
Dim c, k As Long
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
k = 1
Application.ScreenUpdating = False
With sh1
For Each c In .Range("G2", .Cells(Rows.Count, "G").End(xlUp)).Cells
If c.Value Like "AA" Then
c.EntireRow(1).Resize(2, 7).Copy sh2.Cells(2 + (k - 1) * 2, 1)
k = k + 1
End If
Next
End With
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) エクセルのVBAで上の表の最下行を求める 4 2022/09/14 15:22
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセル VBAでセル内容を別の列の最下行に転記したい 2 2022/11/29 08:47
- Visual Basic(VBA) 複数のシートを一つのシートにまとめたい 左から3番目以降のシートのE列のセルに⚪︎が入っている行を抽 2 2022/09/18 18:42
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルのマクロで結合セルに値を貼り付けたい
Excel(エクセル)
-
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
Excel マクロ セルを選択して結合されたセルの内容と転記したい
Excel(エクセル)
-
-
4
VBA初心者です。結合セルを保持したまま挿入する方法を教えてほしいです。
Visual Basic(VBA)
-
5
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
10
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
11
エクセルマクロで結合されたセルをコピー
Excel(エクセル)
-
12
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
13
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
14
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
15
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
16
VBAマクロの文字列認識について
Excel(エクセル)
-
17
Excelのオートシェイプで2箇所折れ曲がった矢印
Excel(エクセル)
-
18
エクセルの主軸と第2軸の0を合わせて表示したい
Windows Me・NT・2000
-
19
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
20
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
えABのある列って
-
エクセルで複数列の検索をマク...
-
VLOOKUPの列番号の最大は?
-
VBAで結合セルを転記する法を教...
-
データシートビューのタイトル...
-
エクセル マクロ 範囲指定で...
-
csvデータの列の入れ替えができ...
-
(VBA)Excelの特定の範囲にデー...
-
エクセルで住所を県と市・郡と...
-
VBAで別ブックの列を検索し、該...
-
Excelの行数、列数を増やしたい...
-
Excel VBA マクロで複数列が共...
-
EXCELの「行列を入れ替える」マ...
-
VBA 指定した列にある日時デー...
-
エクセルで最初の行や列を開け...
-
CSVファイルの「0落ち」にVBA
-
文字の一部分一致のデータをVlo...
-
ExcelVBAで動的配列の部分取り出し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
「段」と「行」の違いがよくわ...
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
CSVファイルの「0落ち」にVBA
-
エクセルで複数列の検索をマク...
-
Excelの行数、列数を増やしたい...
-
エクセルマクロの組み方
-
エクセルマクロPrivate Subを複...
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
エクセルで住所を県と市・郡と...
-
VBAで別ブックの列を検索し、該...
-
Excel文字列一括変換
-
VBA
-
エクセル 重複 隣の列 一番...
-
列方向、行方向の定義
-
Alt+Shift+↑を一括で行うには、...
-
VBAで結合セルを転記する法を教...
おすすめ情報
WindFaller 様 GooUserラック 様
お礼が遅れてすみませんでした。
私の質問の仕方が悪くてすみません。
ご両者の回答で質問のファイルは思い通りに動きました。
実際のファイルは1行目にタイトル行があり、データは3行目からになっていて、表示の右側にもあと数列のデータが入っています。
ご両者の構文を手直しして試みましたが、実力不足で思うように動かすことができませんでした。
データは下図のようになっており、I列以降にも何列かのデータが入っています。