• 締切済み

エクセルマクロで隣のシートへ値貼付け

取引先コードを指定すると、 ワークシート1の表でオートフィルターにより該当する取引先を抽出し、 それを隣のワークシート2へ値貼り付けようとしますが、上手くできません。 通常の貼付けでは、計算式などがずれるため、値貼付けにしたいと思っています。 通常の貼り付けはうまくいくのですが、値貼付けをしようとすると、できません。 値貼付けの記述をどう改善すればいいでしょうか。 宜しくお願い致します。 (1)オートフィルターをコピー+通常の貼り付け With Worksheets(1).Cells(3, 20) .AutoFilter Field:=20, Criteria1:=当月取引先 .CurrentRegion.SpecialCells(xlVisible).Copy Worksheets(2).Cells(9, 1) .AutoFilter End With (2)オートフィルターをコピー+値貼り付け With Worksheets(1).Cells(3, 20) .AutoFilter Field:=20, Criteria1:=当月取引先 .CurrentRegion.SpecialCells(xlVisible).Copy Worksheets(2).Cells(9, 1).pastespecial paste:=xlpastevalues .AutoFilter End With

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>通常の貼り付けはうまくいくのですが、値貼付けをしようとすると、できません。 まず。 オートフィルタで絞り込んでいる状態であれば、通常のコピー貼り付けで勝手に値だけが貼り付きます。 キチンとオートフィルタで絞り込まれている状態に持っていけてることを確認の上、あなたの上手くいく「コピー+通常の貼り付け」のマクロをご利用ください。それで問題なく値で貼り付いています。 sub macro1()  dim 当月取引先 as variant  当月取引先 = "てすと"  worksheets("Sheet1").select  range("A3").currentregion.autofilter field:=20, criteria1:=当月取引先  activesheet.autofilter.range.copy destination:=worksheets("Sheet2").cells(9, 1)  activesheet.autofiltermode = false end sub 次に。 >.CurrentRegion.SpecialCells(xlVisible).Copy Worksheets(2).Cells(9, 1).pastespecial paste:=xlpastevalues 値貼り付けのツモリでデタラメに書き足しても、当然動きません。 新しいマクロの記録で「(可視セルの)セル範囲をコピー、次のシートに形式を選んで貼り付ける」をマクロに録って、正しいマクロの書き方の参考にしてみると良いでしょう。

関連するQ&A

専門家に質問してみよう