相关文章推荐
个性的红茶  ·  python3 对象 ...·  1 年前    · 
  • 边框除外 xlPasteAllExceptBorders
  • 列宽 xlPasteColumnWidths
  • 公式和数字格式 xlPasteFormulasAndNumberFormats
  • 值和数字格式 xlPasteValuesAndNumberFormats
  • 所有合并条件格式 xlPasteAllMergingConditionalFormats
  • Operation xlPasteSpecialOperation常量,指明粘贴时要进行的运算操作,即将复制的单元格中的数据与指定单元格区域中的值进行加减乘除运算。

  • 无 xlPasteSpecialOperationNone
  • 加 xlPasteSpecialOperationAdd
  • 减 xlPasteSpecialOperationSubtract
  • 乘 xlPasteSpecialOperationMultiply
  • 除 xlPasteSpecialOperationDivide
  • SkipBlanks 跳过空单元格

    Transpose 转置

    只粘贴格式而不粘贴值

    Sub testPasteSpecial1()
        Range('C2:C4').Copy
        Range('E2').PasteSpecialPaste:=xlPasteFormats
    End Sub
    Sub testPasteSpecial2()
        Range('C2:C4').Copy
        Range('F2').PasteSpecialPaste:=xlPasteValues
    End Sub

    粘贴值并保持列宽

    Sub testPasteSpecial3()
        Range('A1:A3').Copy
        Range('C1').PasteSpecialPaste:=xlPasteColumnWidths
        Range('C1').PasteSpecialPaste:=xlPasteValues
    End Sub
    Sub testPasteSpecial4()
        Range('A1:A3').Copy
        Range('C1').PasteSpecialPaste:=xlPasteColumnWidths
        Range('A1:A3').CopyRange('C1')
    End Sub

    对粘贴的区域进行运算

    Sub testPasteSpecial5()
        Range('C1').Copy
        Range('A1:A3').PasteSpecialOperation:=xlPasteSpecialOperationMultiply
    End Sub

    将行列转置

    Sub testPasteSpecial6()
        Range('A1:A3').Copy
        Range('C1').PasteSpecialTranspose:=True
    End Sub

    使用PasteSpecial方法时剪贴板中没有数据

    说明:使用PasteSpecial方法时会出错。例如,执行下面的代码:

    Sub testPasteSpecial7()
        Selection.PasteSpecialPaste:=xlPasteColumnWidths, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Selection.PasteSpecialPaste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub

    VBA会提示:类Range的PasteSpecial方法无效

    原因:因为剪贴板中没有可供粘贴的数据。特别是,当你在工作表中复制单元格区域后,在功能区中选择“开发工具”——“宏”或者按Alt F8调出宏对话框时,Excel会清除剪贴板。(事实上,在单元格中使用复制命令后,访问Excel中的任何对话框,剪贴板中的数据都会被清除)因此,再执行上述代码的话,肯定会出错了

    解决方法:为了避免出现上述情况,可以将上面的宏过程赋给一个按钮,直接单击按钮执行;或者在VBE中按F5键执行。

    发布于 2020-04-04