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