vbscript 在Excel VBA中复制和粘贴的三种方法。请注意,`Range.Copy`和`Range.PasteSpecial`使用剪贴板,因此请避免复制任何内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vbscript 在Excel VBA中复制和粘贴的三种方法。请注意,`Range.Copy`和`Range.PasteSpecial`使用剪贴板,因此请避免复制任何内容相关的知识,希望对你有一定的参考价值。

'Be aware that `Range.Copy` and `Range.PasteSpecial` use the clipboard.

'copy everything (values, formats, comments, et al.)
Private Sub CopyPasteAll(fromRange As Range, toRange As Range)
    
    fromRange.Copy toRange
    
End Sub

'copy values only (without using the clipboard)
Private Sub CopyPasteValues(fromRange As Range, toRange As Range)
    
    Dim rows As Integer, columns As Integer, toCell As Range
    
    rows = fromRange.rows.Count
    columns = fromRange.columns.Count
    
    Set toCell = toRange.Cells(1, 1)
    Set toRange = toCell.Worksheet.Range(toCell, toCell.Offset(rows - 1, columns - 1))
    
    toRange.Value = fromRange.Value
    
End Sub

'use Paste Special to be more specific
Private Sub CopyPasteSpecial(fromRange As Range, toRange As Range, _
 Optional pasteType As XlPasteType = xlPasteAll, _
 Optional pasteOperation As XlPasteSpecialOperation = xlPasteSpecialOperationNone, _
 Optional skipBlanks As Boolean = False, _
 Optional transpose As Boolean = False)
    
    fromRange.Copy
    Call toRange.PasteSpecial(pasteType, pasteOperation, skipBlanks, transpose)
    
End Sub

以上是关于vbscript 在Excel VBA中复制和粘贴的三种方法。请注意,`Range.Copy`和`Range.PasteSpecial`使用剪贴板,因此请避免复制任何内容的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA在循环内复制和粘贴循环

vba 把excel中的值复制粘贴到txt中

在 Excel 中使用 VBA,如何在 Outlook 中粘贴表格然后将表格转换为文本?

在 VBA 中使用数组复制和粘贴

Excel VBA:复制/粘贴范围

用VBA编写复制功能,能不能只粘贴值,不粘贴格式