我正在尝试将一个工作簿中的列复制并粘贴到另一个工作簿中:
练习册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而迷失/混淆。
所以我创建了一个按钮,用户可以使用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
老实说,我宁愿找到一种更简单的方法来粘贴这些值并保持其格式而不改变单元格格式和字体颜色等。
请有人告诉我我哪里出错了吗?
答案 0 :(得分:4)
这是一个PasteSpecial选项:
checkout({ dispatch: function(){} })
答案 1 :(得分:0)
而不是仅尝试