アプリ版:「スタンプのみでお礼する」機能のリリースについて

https://oshiete.goo.ne.jp/qa/11542629.htmlで質問した物です。

Sub Sample()
Dim dr, c
Set dr = Worksheets("sheet2").Cells(1, 1)
dr.Worksheet.Cells.Clear

Worksheets("Sheet1").UsedRange.Columns(5).Offset(4).SpecialCells(xlCellTypeVisible) 
dr.Value = c.Value
 Set dr = dr.Offset(, 2)
 If dr.Column > 5 Then Set dr = dr.Offset(2, -6)
Next c

End Sub
上記の教えて戴いたVBAで、オートフィルターで選択し、シート1のE5セルから最終行のセルまでの可視セルをシート2へ横3列で下に向かって値を表示するものです。
当初、値のみ貼り付けと投稿しましたが、値と元の書式の貼り付けにしたいです。
いろいろ試してみましたが、自分には全くわかりませんでした。
よろしくお願いします。

質問者からの補足コメント

  • Qchan1962さん
    ありがとうございました。
    式単体でできました。
    自分が作ったその他の場所が、
    悪さをしているみたいです。
    そちらを使うと駄目なので。
    大変助かりました。

    No.3の回答に寄せられた補足コメントです。 補足日時:2020/03/29 13:55

A 回答 (3件)

内容については、なんとなくで未評価ですが


>値と元の書式の貼り付けにしたい
>Dim dr, c 共にRangeだと思いますので
dr.Value = c.Value を
c.Copy Destination:=dr
スタック気になりますが、、でよろしいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。試してみましたが、書式は入りますが、同一データが縦に3列はいってしまいます。

お礼日時:2020/03/29 10:16

編集する際にSetステートメントを弄ってしまったんじゃないですか?


現在のコードが不明なので憶測ですけど。
    • good
    • 0
この回答へのお礼

前回同様ありがとうございました。
自分が作った他の所が悪さをしているみたいです。

お礼日時:2020/03/29 13:59

>書式は入りますが、同一データが縦に3列はいってしまいます。



同様なループにしていますか?

申し訳ないですが、fujillinさんのコードお借りして
https://oshiete.goo.ne.jp/qa/11542629.html
#6 & #7修正コードで検証しましたが、上記>の内容にはなりませんでした。

Sub Sample()
Dim dr As Range, c As Range
  Set dr = Worksheets("sheet2").Cells(1, 1)
  dr.Worksheet.Cells.Clear
  For Each c In Worksheets("Sheet1").UsedRange.Columns(5).Offset(4).SpecialCells(xlCellTypeVisible)
  'dr.Value = c.Value
    c.Copy dr
    Set dr = dr.Offset(, 2)
    If dr.Column > 5 Then Set dr = dr.Offset(2, -6)
  Next c
End Sub
「エクセル マクロでValue=Value」の回答画像3
この回答への補足あり
    • good
    • 0
この回答へのお礼

後程使わさせていただきます。

お礼日時:2020/03/29 12:27

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