Excel VBA:宛先範囲の古い形式を失うことなく、入力ボックスからアドレスに値のみを貼り付けます


0

範囲からコピーし、inputboxで選択した宛先範囲にのみ値を貼り付けます。それはほとんど動作しますが、宛先範囲の古い形式は失われます[3番目と4番目の行は、以下の図の添付リンクの1番目の行と異なります]。

ここに画像の説明を入力してください

私が欲しいのは、コピーされた範囲からデータを貼り付けた後、古い形式が失われないことです。何か問題でもありますか?

私はxlPasteValuesを使用し、ここにコードがあります:

Sub Ttdn_kc_154()

Dim targetRange As Range

Sheets("ps").Select
If ActiveSheet.AutoFilterMode Then
    ActiveSheet.AutoFilterMode = False
End If
Sheets("httk").Select
If ActiveSheet.AutoFilterMode Then
    ActiveSheet.AutoFilterMode = False
End If

ActiveSheet.Range("httk_kcKQKD_filter").AutoFilter Field:=1, Criteria1:="1"
ActiveSheet.Range("httk_kcKQKD_filter").AutoFilter Field:=12, Criteria1:="<>0"
If ActiveSheet.Range("httk_lockc1542ps").Value > 0 Then
Range("httk_kcKQKD_datakc").Copy
Set targetRange = Application.InputBox(prompt:="Please input or select a range", Type:=8)
targetRange.PasteSpecial Paste:=xlPasteValues
   [the 3rd and 4th row in attached picture link][1]

Application.CutCopyMode = False

End If

1
xlPasteValues書式を保持する場合に使用する理由
cybernetic.nomad

1
@ cybernetic.nomadのコメントをさらに進めるには、値と形式の貼り付けに関するこのページを参照してください。(ヒント:を使用することもできますxlPasteFormats)。そして、ここにMSDNページがありxlPasteTypeます。
ブルースウェイン

@ cybernetic.nomad:x1Pastevaluesを使用するのは、コピーしたセルの内容のみを貼り付け、コピーしたセルをコピー先のセルに貼り付けた後、コピー先のセルの書式を維持するためです。そして、宛先セルの結果は私が望むものではありません。以下の添付画像では、4行目と5行目の失われた書式設定は、1行目の通常の書式設定と比較していますi.stack.imgur.com/cfFan.png 申し訳ありませんが、詳細を更新します。
Le Vuong

@BruceWayne:コピー先のセル(シート "ps")に貼り付けられた2つの行は、古い書式設定と境界線の上に貼り付けられます。「targetRange.PasteSpecial Paste:= xlPasteValues」がフォーマットと境界線もクリアする理由がわかりません。 imgur.com/tocxpfY
ル・

ありがとうございます、それはすべてが機能するようにコードの順序を変更するようです:Set targetRange = Application.InputBox(prompt:= "宛先範囲を選択してください:"、Type:= 8)Sheets( "httk")。Select ActiveSheet.Range( "httk_kcKQKD_filter")。AutoFilterフィールド:= 1、Criteria1:= "1" ActiveSheet.Range( "httk_kcKQKD_filter")。AutoFilterフィールド:= 12、Criteria1:= "<> 0" If ActiveSheet.Range( "httk_lockc1542ps")。値> 0 Then Range( "httk_kcKQKD_datakc")。Copy Sheets( "ps")。Select targetRange.PasteSpecial Paste:= xlPasteValues Application.CutCopyMode = False End If End Sub
Le Vuong
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.