今日給大家推出VBA代碼方案之十五,如何利用VBA代碼替換完成複制的過程。在EXCEL中複制和粘貼時非常基本的操作,在VBA代碼中複制和粘貼時如何操作的呢?今日給大家詳細的講解,這些代碼可以在程序中直接利用,也可以在實際工作中稍加修改,加以利用,希望朋友們能活學活用。結合自己的實際工作靈活的運用。
Range對象的Copy方法的語法如下:
Copy(Destination)
參數Destination表示複制單元格區域的目标區域,如果省略該參數,Excel将把該區域複制到剪貼闆中。使用Copy方法複制單元格區域時,也複制了該單元格區域的格式,
複制單元格區域時,如果目标區域為非空單元格區域,Excel将顯示消息框提示是否替換單元格内容,可以設置Application.DisplayAlerts屬性值為False,使複制時不出現該消息框。
我們看下面的實際代碼:
Sub MyCopy()
Application.DisplayAlerts = False
Sheet1.Range("A1").CurrentRegion.Copy Sheet2.Range("A1")
Application.DisplayAlerts = True
End Sub
代碼解析:
上面MyCopy過程将Sheet1工作表中A1單元格的當前區域複制到Sheet2工作表中以A1單元格為左上角單元格的區域
第2行代碼通常複制單元格區域的操作不會将單元格區域的列寬大小同時複制,如果希望在複制單元格區域的同時,也複制源區域的列寬大小,可以使用下面的代碼。
Sub MyCopyWithSameColumnWidths()
Sheet1.Range("A1").CurrentRegion.Copy
With Sheet3.Range("A1")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteAll
End With
Application.CutCopyMode = False
End Sub
代碼解析:
第4行代碼使用Range對象的PasteSpecial方法選擇性粘貼剪貼闆中的Range對象的列寬。
第5行代碼粘貼剪貼闆中的Range對象全部内容。
第7行代碼取消應用程序複制模式。
應用于Range對象的PasteSpecial方法将剪貼闆中的Range對象粘貼到指定區域,在粘貼時可以有選擇的粘貼對象的部分屬性。其語法如下:
PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
參數Paste指定要粘貼的區域部分,可為如下所列的XlPasteType常量之一。
xlPasteAll -4104全部(默認值)
xlPasteAllExceptBorders7邊框除外
xlPasteColumnWidths8列寬
xlPasteComments-4144批注
xlPasteFormats-4122格式
xlPasteFormulas-4123公式
xlPasteFormulasAndNumberFormats11公式和數字格式
xlPasteValidation6有效性驗證
xlPasteValues-4163數值
xlPasteValuesAndNumberFormats12值和數字格式
參數Operation指定粘貼操作。XlPasteSpecialOperation為下面常量之一。
xlPasteSpecialOperationNone-4142無(默認值)
xlPasteSpecialOperationAdd2加
xlPasteSpecialOperationSubtract3減
xlPasteSpecialOperationMultiply4乘
xlPasteSpecialOperationDivide5除
參數SkipBlanks指示是否跳過空單元格,若參數值為True,則不将剪貼闆上區域中的空白單元格粘貼到目标區域中。默認值為False。
參數Transpose指示是否進行轉置,若參數值為True,則粘貼區域時轉置行和列。默認值為False。
代碼截圖:
運行前:
運行後:
今日内容回向:
1 Copy(Destination) 意義是什麼?
2 PasteSpecial(Paste, Operation, SkipBlanks, Transpose) 意義是什麼?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!