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