範囲からコピーし、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
@ 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
xlPasteValues
書式を保持する場合に使用する理由