こんにちは
先日、こちらで
sheet2の各セルは、sheet1のセルを参照しています。
sheet2のA列に値がある行の AからCQ列までを選択して、
sheet3に貼り付けしたいのですが、
VBAで行うにはどうしたらよいでしょうか。
という、質問をしました。
それに、
> Sheet2の1行目は項目行になっていて、データは2行目以降にあるとし、
> そして、Sheet3にコピー&ペーストするのは2行目以降とします。
>
> 標準モジュールです。
>
> Sub Sample1()
> Dim lastRow As Long
> With Worksheets("Sheet2")
> lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
> .Range("A1").AutoFilter field:=1, Criteria1:="<>"
> If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
> Range(.Cells(2, "A"), .Cells(lastRow, "CQ")).SpecialCells(xlCellTypeVisible).Copy
> Worksheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues
> End If
> .AutoFilterMode = False
> Application.CutCopyMode = False
> End With
> End Sub
という、回答をいただきました。
これは上手く設置することができましたが、
データが1行の場合、sheet3が空白になってしまいました。
また、1行目が項目行ではなく、1行目からデータの場合、
どこをどのように設定してよいのかわかりません。
教えていただけないでしょうか。
Excel2007を使用しています。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
こんばんは!
1行目からデータがあり、オートフィルタの設定をしてしまうとExcel的には
自動的に「1行目を項目行」としてしまうようなので、1行目からデータがある場合は
↓のようにしてみてはどうでしょうか?
Sub Sample2()
Dim lastRow As Long
With Worksheets("Sheet2")
.Rows(1).Insert '//1行目を行挿入★
.Range("A1") = "ダミー" '//仮の項目名
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A1").AutoFilter field:=1, Criteria1:="<>"
If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, "CQ")).SpecialCells(xlCellTypeVisible).Copy
Worksheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues
End If
.Rows(1).Delete '//追加した行を削除★
.AutoFilterMode = False
Application.CutCopyMode = False
End With
End Sub
※ コード内の「★」の行を追加してみました。m(_ _)m
引き続いて、ご回答ありがとうございます。
丁寧にご説明いただきましたおかげで、
問題が解決致しました。
大変使いやすくなりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 【至急】Excel 同一人物の情報を一行にまとめる(複数行) 6 2022/05/24 17:58
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の条件に合う行番号を取得...
-
エクセルで1列に500行並んだデ...
-
Excelで2行単位のソートの出来...
-
Excelの30個ずつの平均値の出し方
-
excel:別シートの値を飛び飛び...
-
エクセルで、重複データを除外...
-
エクセルマクロで、特定の列が...
-
Excel VBA 【QueryTables.Add】...
-
EXCLE 半角カナを全角かなに一...
-
Excelで2つのデータの突合せを...
-
ネット上の表をExcelに取...
-
エクセルで時刻だけを抜き出す...
-
エクセルで、ハイフンを抜きたい
-
エクセル2016にて、行挿入&コピ...
-
エクセルで日付から日にちを削...
-
エクセルで、特定の文字を含む...
-
重複データの個数別を集計した...
-
エクセル関数について aかつ...
-
エクセルのIF関数の並べ替え
-
エクセルで1つの会社名に対して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで日付から日にちを削...
-
複数の条件に合う行番号を取得...
-
エクセルで1列に500行並んだデ...
-
Excelで2つのデータの突合せを...
-
Excelで2行単位のソートの出来...
-
excel:別シートの値を飛び飛び...
-
エクセルで、重複データを除外...
-
Countifよりも早く重複数をカウ...
-
Excelの30個ずつの平均値の出し方
-
エクセルで横並びの複数データ...
-
エクセルVBA C列に特定の文字列...
-
VBA 数式を最終行までコピー
-
500行の中から、多い順に抽出す...
-
エクセルで1つの会社名に対して...
-
【エクセル】1列内に複数ある同...
-
VBA 大きなtxtテキストファ...
-
エクセルで時刻だけを抜き出す...
-
エクセル~空白のセルのある行...
-
Excelの関数でこんな処理ができ...
-
Excel VBA 【QueryTables.Add】...
おすすめ情報