dポイントプレゼントキャンペーン実施中!

下記のマクロは、エクセルのシート「精算」のb12~bz342の範囲からからシート「集計表」のアクティブセルを始点に、空白行を除いたデーターを貼り付けます。
しかし計算式と書式を抜いた値だけを貼り付けたいので、
ActiveSheet.Pasteを
ActiveSheetSpecial Paste:=xlPasteValues
に書き換えたらエラーになってしまいました。
どなたか詳しい方ご教授下さい。
よろしくお願いします。


Sub 精算項目コピー()

Dim 最終列 As Integer
Sheets("精算").Activate
最終列 = Range("b342").End(xlUp).Row
Range("b12:bz" & 最終列).Select
Selection.Copy
Sheets("集計表").Select
ActiveSheet.Paste  ←この部分を書き換えたらエラー


End Sub

A 回答 (5件)

記録マクロで試してみました。


ちょっと貴質問のコードと違うようです。・・・PasteSpecial Paset:= ・・・ のところが、

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
    • good
    • 1
この回答へのお礼

お陰様ですぐに出来ました。ありがとうございました。

お礼日時:2013/03/24 21:47

sub macro1()


 dim Target as range

’>エクセルのシート「精算」のb12~bz342の範囲から
 set target = worksheets("精算").range("B12:BZ" & worksheets("精算").range("BZ65536").end(xlup).row)


’>「集計表」のアクティブセルを始点に
’>計算式と書式を抜いた値だけを貼り付けたい
 worksheets("集計表").select
 activecell.resize(target.rows.count, target.columns.count).value = target.value
end sub
ぐらいで十分です。
    • good
    • 1
この回答へのお礼

・・・ ("BZ65536").end(xlup).row)を("B342").end(xlup).row)に変えて、うまく作動しました。
説明不足で申し訳ありませんでした。
ありがとうございます。

お礼日時:2013/03/24 22:38

質問文と質問のコードには、東京と名古屋ぐらいの差がありますね。

質問の中には、空白の行を除くというコードは含まれていません。SpecialPasteの問題なのか、分かりません。読み手の日本語の文章の解釈に依存して、正解・不正解とするのは、ちょっとつらいものがあります。また、こちらのアクティブセルという解釈は、最後の行としました。そうすると、集計表シートに何もなければ、2行目から書きだすのですが、何かあれば、最後の行に付け足すということになります。

'//
Sub TitlesCopy()
 Dim i As Long
 With Worksheets("精算")
  For i = 12 To 342
   If Application.Count(.Cells(i, 2).Resize(, 77)) > 0 Then
    .Cells(i, 2).Resize(, 77).Copy
    Worksheets("集計表").Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
   End If
  Next i
  Application.CutCopyMode = False
 End With
End Sub
    • good
    • 0

>エクセルのシート「精算」のb12~bz342の範囲からからシート「集計表」のアクティブセルを始点に、空白行を除いたデーターを貼り付けます。

しかし計算式と書式を抜いた値だけを貼り付けたいので、
「集計表」のアクティブセル、ってドコヤねん、、、

'Option Explicit
Sub 精算項目コピー()
Dim 最終列 As Long
Dim 最終gyo As Long
Sheets("精算").Activate
'最終列 = Range("b342").End(xlUp).Row
最終gyo = Cells(Rows.Count, "B").End(xlUp).Row
Range("b12:bz" & 最終gyo).Select
Selection.Copy
Sheets("集計表").Select
'ActiveSheet.Paste ←この部分を書き換えたらエラー
Range("A1").PasteSpecial Paste:=xlPasteValues
最終gyo = Cells(Rows.Count, "A").End(xlUp).Row
For nn = 最終gyo To 1 Step -1
最終列 = Cells(nn, Columns.Count).End(xlToLeft).Column
If IsEmpty(Cells(nn, "A").Value) And (最終列 = 1) Then
Rows(nn).Delete
End If
Next
End Sub
    • good
    • 0

こんにちは!



>Range("b12:bz" & 最終列).Select
>Selection.Copy
>Sheets("集計表").Select
>ActiveSheet.Paste

>Range("b12:bz" & 最終列).Copy
>Sheets("集計表").Activate
>ActiveSheet.Cells(貼り付けセル番地).Select
>Selection.PasteSpecial Paste:=xlPasteValues
としてみてはどうでしょうか?

※ 検証していませんので、ダメだったらごめんなさいね。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!