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

画像の伝票があります。
一覧表に所定のデータを転記していくコードを組みました。
転記自体は問題なく出来るのですが、転記ボタンを押した後に自動的に値をクリアしたいのです。
コードの中にWithで組み込んだのですが、エラーにはならないもののクリアできません。
どこがおかしいのでしょうか?

Sub データ転記()

Dim i As Long, EndRow As Long, rng As Range
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheets("受付表")
Set sh2 = Worksheets("受付一覧")
sh1.Select


Names.Add Name:="Target", RefersTo:=("=$H$3,$C$8,$C$10,$C$12,$A$17")
With sh2
.Select
EndRow = .Range("B" & Rows.Count).End(xlUp).Offset(1).Row
For Each rng In sh1.Range("Target")
.Cells(EndRow, i + 2) = rng.Value
i = i + 1
Next rng
End With

With sh2
.Range("C8,C10,C12,A17").ClearContents
End With


Sheets("受付表").Select

End Sub

※Targetセルは結合してあります
H3はH3~I3の結合
C8はC8~E8の結合
C10はC10~E10の結合
C12はC12~E10の結合
A17はA17~I36の結合  です。

「データ転記後の値のクリア」の質問画像

A 回答 (1件)

ClearContents のステートメント



sh2 じゃなくて、sh1 じゃないでしょうか。

それと、統合したセルで ClearContents をしようとすると、
「結合されたセルの一部を変更することはできません」
と出ますので、

With sh1
    .Range("C8,C10,C12,A17").Value = ""
End With

で行ってみましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。上手くできました。

先ずはsh1とsh2の単純な間違いでしたね。
結合したセルではClearContents使用すると弊害があるのですね。

VBA勉強中でまだまだ解らないことだらけで・・・

お教えくださりありがとうございました。

お礼日時:2015/05/12 08:12

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

このQ&Aを見た人はこんなQ&Aも見ています