• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロで特定行を含まずコピーする方法を教えてください。)

マクロで特定行を含まずコピーする方法を教えてください

このQ&Aのポイント
  • 社内で使っている1ヶ月分の売り上げ表が重くなっており、過去日付の行だけ値で貼りつけたい。
  • 売り上げ表には計算式が入っているが、合計欄だけは計算式を残したままコピーする方法を教えてほしい。
  • どのようにマクロを使えば、特定行を含まずに売り上げ表をコピーして値で貼りつけることができるか教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

> というのを見つけましたが、★の部分が偶数行(?)の指定の為、私が作っている表には当てはまらなく困っています。 私が以前回答した時のコードですね。 コードの内容をちゃんと理解すればちょっとの修正で利用できます。 For i = 2 To Range("A" & CStr(Rows.Count)).End(xlUp).Row Step 2  Range(Cells(i, 2), Cells(i, nTargetCol)).Select ↓ For i = 2 To Range("A" & CStr(Rows.Count)).End(xlUp).Row Step 8  Range(Cells(i, 2), Cells(i+6, nTargetCol)).Select

jk1025
質問者

お礼

mt2008さん ありがとうございます。 私の勉強不足でした。もっとコードが理解できるように勉強したいと思います。 本当にたすかりました。ありがとうございます。

その他の回答 (1)

  • qyukip
  • ベストアンサー率40% (13/32)
回答No.1

合計欄に「合計」と付いているのが条件ですが、 まずオートフィルタをかけ、「合計」を含まない行を抽出してコピーします。 貼り付ける際に形式を指定して貼り付け→値 を選択して貼り付けます。 次にオートフィルタで「合計」を含む行を抽出してコピーし、貼り付けます。 参考になれば幸いです。

jk1025
質問者

補足

qvukipさん  早速の回答ありがとうございます。 私の説明不足なのですが、全体をコピーして貼り付けするのではなく、過去日付の部分のみをコピー貼り付けしたいんです。 いろいろ探してみて Sub Sample()   Dim nTargetCol As Long   Dim i As Long        Application.ScreenUpdating = False   nTargetCol = Evaluate("MATCH(TODAY()-1,1:1,1)")   For i = 2 To Range("A" & CStr(Rows.Count)).End(xlUp).Row Step 2 ★     Range(Cells(i, 2), Cells(i, nTargetCol)).Select     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues     Application.CutCopyMode = False   Next i   Application.ScreenUpdating = True End Sub というのを見つけましたが、★の部分が偶数行(?)の指定の為、私が作っている表には当てはまらなく困っています。 偶数行ではなく8行目ごとを省くといった構文はないでしょうか?

関連するQ&A

専門家に質問してみよう