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中的列I中,那么我得到如下结果:

 Column I 34331 41 121092 52 

这是因为格式不知何故被excel弄糊涂了。

所以我创build了一个button,用户可以像这样使用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 

说实话,我宁愿找一个简单的方法来粘贴这些值,并保持其格式,而不改变单元格格式和字体颜色等

请有人告诉我我要去哪里错了吗?

这里有一个PasteSpecial选项:

 ActiveSheet.Range("H10").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _ Operation:= xlNone, SkipBlanks:=False, Transpose:=False