2016-07-01 12 views
1

をコピーしたとき、私はコピーしていたとき、私は、前年度とD24との単純な連結関数を含む細胞(例えば15)とカスタム形式(MMMのJJ日付値の変更

CONCATENATE("Apr ",$D$24)

を持っており、 「15.04.16」になっているため、フォーマットの後、「4月15日」VBAでこれらの細胞を貼り付ける「4月16日は」

Selection.Value = Selection.Valueだったbehin理由がありますこれは?フォーマットをテキストに変更する以外の解決策がありますか?あなたは、単にそれをコピー&ペーストした場合(私は右覚えていれば)

答えて

0

、唯一の価値は

代わりにRangeを使うSelectionを使用してavoidしようとしないの書式を貼り付けています。

Range.CopyRange.PasteSpecial Paste:=xlPasteFormatsを使用して、書式設定に値を貼り付けます。

+0

'xlPasteAll'も式をコピーします。 OPのコードは式を削除します。値だけを貼り付けてみてください。 –

+0

申し訳ありませんが、私は質問を誤解しました。その場合、xlPasteFormatsを使用することができます。私の元のcommenを編集しました。 –

+0

私は誤解されているかもしれません。あるいは、OPが自分がしたいことを明確に説明していないかもしれません。しかし、値をコピーすることも忘れないでください。メソッドを使用するときに得られるものを確認するテスト。 –

2

Excelは、通常、日付のように見えるものを実際の日付(1月1日= 1900年1月1日)に変換しようとします。これを回避し、上記のように式を削除する方法の1つは、テキストとして事前にフォーマットすることです。だから、:

With Selection 
    .NumberFormat = "@" 
    .Value = .Text 
End With 

は、あなたがやりたいことがあります。

セルの書式をテキストに変更しない場合や、単引用符'をプレフィックスとしてプレフィックスを付ける場合、そのセルを後で編集すると誤って選択しても、それを変換するリスクが高くなります本当の日付。

2

これは、あなたのセルで何をしたいかによって異なります。あなたは文字列や日付をしたいですか?

あなたが文字列の場合:あなたは日付をしたい場合CONCATENATE("'Apr ",$D$24)

  • いずれかの形式のテキストとして、または

  • 」を追加

    • 次の形式を使用しますlaを連結する代わりに:=DATE($D$24,4,1)