こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

簡単マクロ編集

Sheets("Sheet1").Select  ←Range("A3:H8")

Selection.Copy
Sheets("Sheet2").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet4").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

下方にこの操作を繰り返ししたいのですが

Dim i As Long
Worksheets("Sheet1").Select
For i = 3 To 100 Step 6
If Cells(i, "A") = "" Then
Exit Sub
End If
Cells(i, "A").Resize(6, 8).Copy Destination:=Worksheets("Sheet2").Range("A3:H8")
Next i

貼付けは値で貼り付けたいと思います。
どう組み合わせればよいですか?

投稿日時 - 2011-04-10 23:47:01

QNo.6659724

すぐに回答ほしいです

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

あなたのご質問は
>下方にこの操作を繰り返ししたいのですが
>貼付けは値で貼り付けたい

です。

>データ60行があれば、それぞれ1回計10回プリントアウトしたいのですが

そういう新しいことは,また新しいご質問で投稿すべき内容です。



手順:
worksheets("Sheet2").range("A3:H8").value = worksheets("Sheet1").cells(i - 6, "A").resize(6, 8).value

今回ご説明している内容では,この部分が「値貼り付け」の基本のマクロです。
既出回答のコピー貼り付けしているマクロの部分をこういう書きぶりに改めて,続きは自分で作成してみてください。
出来なかったときは改めて「今度は何をしたいのか」手抜きせずにキチンと目に見えるように正しい説明を添えて,新たなご相談として投稿してください。

投稿日時 - 2011-04-11 00:44:33

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

寄せられた回答はスルーしてちゃっかり美味しいトコだけ戴きますとは,これまたずいぶんなやり口ですね。


>値貼り付け

sub macro3()
 dim i as long
 for i = 3 to 99 step 6
  if worksheets("Sheet1").cells(i, "A") = "" then
   worksheets("Sheet2").range("A3:H8").value = worksheets("Sheet1").cells(i - 6, "A").resize(6, 8).value
   worksheets("Sheet4").printout 'どのシートを印刷したいのか,ご自分で調整すること
   exit sub
  end if
 next i
end sub

投稿日時 - 2011-04-10 23:59:15

お礼

ありがとうございます。
これだと最後データの 6行8列 のみプリントされます

データ60行があれば、それぞれ1回計10回プリントアウトしたいのですが
それはできますか?(´;ω;`)

投稿日時 - 2011-04-11 00:30:35

あなたにオススメの質問