在Excel的鼠标操作中常用的操作有插入、删除、清除、复制、粘贴等,下面来说明如何在Excel宏(VBA)中实现,我来为大家科普一下关于excel 宏按钮自动复制?以下内容希望对你有帮助!

excel 宏按钮自动复制(Excel宏复制粘贴)

excel 宏按钮自动复制

  在Excel的鼠标操作中常用的操作有插入、删除、清除、复制、粘贴等,下面来说明如何在Excel宏(VBA)中实现。

  四、Range().Copy 可以单独复制,也可以同时复制粘贴。

  此处的Range()也可以是Cells()、Rows()、Columns()等。

  Range("B3:C5").Copy 表示将Range("B3:C5")的内容、格式、备注等全部复制到内存。一般复制的目的就是为了粘贴,所以下一步就该粘贴了。

  用.Copy粘贴的格式主要有一下几种:

  (1) Cells(2,3).Copy Cells(5,7) 将2行3列单元格的信息复制粘贴到5行7列单元格。

  (2) Range("B3:C5").Copy Cells(5,7) 将B3至C5这一块矩形区域的信息复制粘贴到以5行7列为左上角且同样大小的矩形区域。

  (3) Rows(2).Copy Cells(5,1) 将第2行的信息复制粘贴到第5行。

  (4) Rows("2:3").Copy Cells(5,1) 将第2至3行的信息复制粘贴到以第5行开始且行数相同的区域。

  (5) Columns(2).Copy Cells(1,7) 将第2列的信息复制粘贴到第7列。

  (6) Columns("B:C").Copy Cells(1,7) 将第B至C列的信息复制粘贴到以第7列开始且列数相同的区域。

  五、Range().PasteSpecial 表示粘贴

  Range1.Copy 第一步是复制Range1。

  Range2.PasteSpecial 第二步是粘贴到Range2。

  上面的两行实际上和下面这一行代码效果相同:

  Range1.Copy Range2 将Range1复制后全部粘贴到Range2。

  .PasteSpecial存在的意义主要是带上参数后,实现特殊方式的粘贴。下面介绍.PasteSpecial的四个参数及参数的取值(只介绍其中的一部分,说的多也记不住)。

  (1)第一个参数Paste,涉及要粘贴什么信息。

  Paste:= xlPasteAll 粘贴全部内容和格式(这是默认值,可以不写)。

  Paste:= xlPasteValues 粘贴值(如果是数值或字符串,就直接粘贴;如果是公式,就粘贴计算结果;粘贴区域的格式保持不变)。

  Paste:= xlPasteFormats 粘贴复制的源格式(相当于将粘贴区域的格式设置成复制区域的格式,粘贴区域的内容保持不变)。

  还有一些参数我平时不用,就不写了,附在最后。

  第二个参数:Operation,涉及复制来的数据如何运算。

  Operation:= xlPasteSpecialOperationNone 粘贴区域的数据变为复制区域的数据(这是默认值,可以不写)。

  Operation:= xlPasteSpecialOperationAdd 粘贴区域的数据变为粘贴区域与复制区域对应单元格数据之和。

  Operation:= xlPasteSpecialOperationSubtract 粘贴区域的数据变为粘贴区域与复制区域对应单元格数据之差。

  Operation:= xlPasteSpecialOperationMultiply 粘贴区域的数据变为粘贴区域与复制区域对应单元格数据之积。

  Operation:= xlPasteSpecialOperationDivide 粘贴区域的数据变为粘贴区域与复制区域对应单元格数据之商。

  这个参数我很少用,如果是块区域的格式完全相同,数据直接这样加减乘除的话,还是很方便的,该参数只对数字或者结果是数字的公式有效,如果粘贴位置或复制位置的内容是文本(字符串),选择进行加减乘除运算的话,会导致粘贴失败(同一次粘贴过程,粘贴区域内,能运算的单元格粘贴成功,不能运算的单元格粘贴失败,也可以理解为部分失败)。

  第三个参数:SkipBlanks粘贴时,粘贴时是否跳过复制区域的空白部分。

  SkipBlanks:= False 不跳过(这是默认值,可以不写)。粘贴区域全部进行粘贴,其中复制区域空白部分对应的粘贴位置也会变为空白。

  SkipBlanks:= True 跳过。复制区域空白部分对应的粘贴位置保持不变,其它位置进行粘贴。

  第四个参数:Transpose,粘贴时是否转置行和列。格式:Transpose:=False。

  Transpose:= False 不转置(这是默认值,可以不写)。

  Transpose:= True 转置,将复制来的矩形区域行变列,列变行后进行粘贴。

  这四个参数之间是独立关系,可以搭配使用。完整的粘贴格式如下,参数的取值可以变更为其它对应的值。

  Range("F2").PasteSpecial Paste:= xlPasteValues, Operation:= xlPasteSpecialOperationAdd, SkipBlanks := False, Transpose:= False


  第一个参数Paste对应的值。

  Paste:= xlPasteAll 粘贴全部内容(这是默认值,可以不写)。

  Paste:= xlPasteValues 粘贴值。

  Paste:= xlPasteFormats 粘贴复制的源格式。

  Paste:= xlPasteValuesAndNumberFormats 粘贴值和数字格式。

  Paste:= xlPasteFormulas 粘贴公式。

  Paste:= xlPasteFormulasAndNumberFormats 粘贴公式和数字格式。

  Paste:= xlPasteAllExceptBorders 粘贴除边框外的全部内容。

  Paste:= xlPasteAllMergingConditionalFormats 将粘贴所有内容,并且将合并条件格式。

  Paste:= xlPasteAllUsingSourceTheme 使用源主题粘贴全部内容。

  Paste:= xlPasteColumnWidths 粘贴复制的列宽。

  Paste:= xlPasteComments 粘贴批注。

  Paste:= xlPasteValidation 粘贴有效性。

,