私は別のワークブックの列からいくつかの値をコピー&ペーストしようとしています:VBAの値を貼り付けてソースの書式を維持しますか?
ワークブック1
Column A
10/02/1990
41
11/01/2017
52
ワークブック2
Column I
10/02/1990
41
11/01/2017
52
を私ならば、私は取得しています問題がありますワークブックAの第1列の値をコピーしてワークブック2の第1列に貼り付けます。
Column I
34331
41
121092
52
これは、フォーマットがどうにかしてExcelで紛失/混乱するためです。
だから私は、ユーザーがそのようなVBAを使用してこのデータを貼り付けることができ、ボタンを作成しました:
Sub Paste3()
Dim lastRow As Long
On Error GoTo ErrorHandler
lastRow = ActiveSheet.Range("H" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("H10").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False
Exit Sub
ErrorHandler:
MsgBox "Please Copy Values First."
End Sub
これは動作し、値がその書式設定を保持します。しかし、セル形式も変わります。
これは、ブック1のセルに黒い境界線があり、フォントが黒く太字であることを意味します。
私は、ブック2のフォントとセルの境界線を保護したいと考えています。これは、次のとおりです。
グレーボーダー、RGB(191、191、191) グレーフォント(RGB 128、128、128) フォントサイズ:11 フォント:Calibri基本的にそれは列のように見える必要が
右の方へ。
私はこれを試してみましたが、それは正しく動作しません、それはそれが想定されていない私のスプレッドシート内の範囲に境界線を追加します。私はむしろちょうど
など、これらの値を貼り付けると、セルの書式を変更することなく、その形式を保つための簡単な方法とフォントの色を見つけるだろうSub Paste3()
Dim lastRow As Long
On Error GoTo ErrorHandler
lastRow = ActiveSheet.Range("H" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("H10").PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False
Dim rng As Range
Set rng = Range("H10:H" & lastRow)
With rng.Borders
.LineStyle = xlContinuous
.Color = RGB(191, 191, 191)
.Weight = xlThin
.Font
End With
With rng.Font
.TextColor = RGB(128, 128, 128)
.Font.Name = "Calibri"
.Size = 11
.Bold = False
End With
Exit Sub
ErrorHandler:
MsgBox "Please Copy Values First."
End Sub
正直に言うと、私は間違っているつもりどこ誰かが私を見ることができますしてください?
*貼り付け値*ペースト、まあ、*値*。 *書式*を保持したい場合は、*値以上を貼り付ける必要があります。 –
ペーストの特別な操作を手動で実行しているときにマクロを記録し、Excelが 'PasteSpecial'呼び出しのためにどのようなパラメータを与えられているかを見てください。 –
値と書式を貼り付けます。この記事をチェック:http://stackoverflow.com/questions/25461314/vba-copy-cells-value-and-format – tlemaster