2
我试图从列在一个工作簿复制和粘贴一些值到另一个: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中的第一列。然后我得到如下结果:
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 字体:宋体
本质上,它需要像列在右边。
我已经试过这一点,但它不工作的权利,它增加了边界,范围在我的电子表格它是不应该。
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”调用提供的Excel参数。 –
粘贴值和格式。检查这篇文章:http://stackoverflow.com/questions/25461314/vba-copy-cells-value-and-format – tlemaster