エクセルマクロのVBAについてご教示ください、
データ一覧の表にフィルターをかけた後、データ項目行を除くセルをコピーして、別ブックにペーストするようにしたのですが、うまく貼り付きません。
For i = 1 To 100
' フィルタ
sheet1.Range("A1:CX1").AutoFilter field:=102, Criteria1:=CStr(i)
' フィルタ結果カウント
cnt = WorksheetFunction.Subtotal(3,
sheet1.Range("CX2").CurrentRegion.Columns(102))
If cnt > 1 Then
Set bookNew = Workbooks.Open(sPath & "\入力原票.xlsx")
Set sheetNew = bookNew.Sheets(1)
' コピー
sheet1.Range("A2:CW2000").Copy
sheetNew.Range("A9:CW2009").PasteSpecial Paste:=xlPasteValues
問題点があれば教えていただきたいです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは、あくまで推測の範疇ですが
' コピー
Dim n As Long
n = Application.Max(9, sheetNew.Cells(Rows.Count, "A").End(xlUp).Row + 1)
Sheet1.Range("A2:CW2000").SpecialCells(xlCellTypeVisible).Copy
sheetNew.Range("A" & n).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
No.1
- 回答日時:
こんばんは
>問題点があれば教えていただきたいです。
部分抜き出しなのでしょうけれど、切り取り方が微妙なのでハッキリとはしませんが、ご提示のコードからだけで言うならば・・
・変数sheet1、sPathの内容が不明。(ご提示の外で設定しているのかも)
(sheet1はオブジェクト名でのダイレクト指定なのかも?)
・Forループに対するNextがないので、どこまでなのかが不明。
・もしも、ループ内だとするなら
>Set bookNew ~~
>Set sheetNew ~~
同じ処理を何度も繰り返しているのは無駄。
(ループ外で、事前処理として行っておくべき)
・同じく、ループ内なのなら
>sheetNew.Range("A9:CW2009").PasteSpecial ~~
同じセルへ何度も上書きすることになるので無意味。
(この処理が正しいのなら、最後の1度だけ処理をすれば足りる)
想像するところ、↑の処理が『うまく貼り付きません。』というご質問の原因なのかと。
(「うまくいかない」という情報だけからでは、何もわかりませんけれど・・)
以下は、シートの状態にもよるので、何とも言えませんが・・
>sheet1.Range("A1:CX1").AutoFilter ~~
・タイトル行の指定だけで、目的範囲が正確に指定できているのか微妙。
一方で、コピー範囲は2000行迄一律指定にしている・・
>cnt = WorksheetFunction.Subtotal ~~
・(はっきりとはしませんが)第二引数は、sheet1.Columns(102)だけでも足りそうだが・・
全体的に、シートやセル範囲の指定などの考え方(妙に丁寧だったり大雑把だったり)に統一性が感じられません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルVBA 3 2022/06/09 08:04
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オートフィルタのリストを順番...
-
ピボットテーブル→参照が正しく...
-
WEB上の表の列コピー選択方法は?
-
エクセルで作成した縦に長い表...
-
【エクセル】行挿入で数式もい...
-
一つのシートの中に複数のペー...
-
Excelピボットテーブルで 総計...
-
エクセルVBAで、行コピーを複数...
-
エクセルのリストから欠番を拾...
-
エクセル シートのコピーをリ...
-
Excelの数式のコピーで列移動で...
-
メモ帳からエクセルに貼り付け...
-
エクセルで各ページに同じ文書...
-
エクセルVBAでメモリ解放するに...
-
エクセルの列幅
-
一太郎にエクセルの表を貼り付...
-
文字列+数字から最大を抽出す...
-
Excelのセルの中の見えないデー...
-
Excel 表から値をさがして隣の...
-
Excelのコピー&ペーストについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
WEB上の表の列コピー選択方法は?
-
オートフィルタのリストを順番...
-
【エクセル】行挿入で数式もい...
-
エクセルで作成した縦に長い表...
-
Excelの数式のコピーで列移動で...
-
ピボットテーブル→参照が正しく...
-
Excelピボットテーブルで 総計...
-
エクセルVBAで、行コピーを複数...
-
メモ帳からエクセルに貼り付け...
-
Excel 表から値をさがして隣の...
-
エクセルのリストから欠番を拾...
-
エクセルの列幅
-
エクセルの関数の使い方 繰越...
-
エクセルに詳しい方、助けてく...
-
PDFからExcelに変換する時に「...
-
一太郎にエクセルの表を貼り付...
-
Excelで検索結果をテキストボッ...
-
エクセル シートのコピーをリ...
-
VBA csvを100万行ずつ各...
おすすめ情報