在Excel的鼠标操作中常用的操作有插入、删除、复制、粘贴等,下面来说明如何在Excel宏(VBA)中实现。
一、Range().Insert 表示插入
此处的Range()也可以是Cells()、Rows()、Columns()等。
参数shift:=xlShiftDown表示插入后,插入位置连同下面的所有元素集体向下移动;
shift:=xlShiftToRight表示插入后,插入位置连同右侧的所有元素集体向右移动。
Cells(3, 5).Insert shift:= xlShiftDown表示队伍是上下方向的,排头在上,排尾在下。要将第5支队伍的第3个位置空出来,那么第5支队伍的第3个位置的元素和它后面的所有元素都向后移动1个位置。
Cells(3, 5).Insert shift:= xlShiftToRight表示队伍是左右方向的,排头在左,排尾在右。要将第3支队伍的第5个位置空出来,那么第3支队伍的第5个位置的元素和它后面的所有元素都向后移动1个位置。
Range(Cells(2, 4), Cells(6, 11)).Insert shift:= xlShiftDown表示队伍是上下方向的,排头在上,排尾在下。要将第4~11支队伍的第2~6个位置空出来,那么第4~11支队伍的第2~6个位置的元素和它后面的所有元素都向后移动5个位置。
Range(Cells(2, 4), Cells(6, 11)).Insert shift:= xlShiftToRight表示队伍是左右方向的,排头在左,排尾在右。要将第2~6支队伍的第4~11个位置空出来,那么第2~6支队伍的第4~11个位置的元素和它后面的所有元素都向后移动8个位置。
下面介绍整行插入Rows().Insert和整列插入Columns().Insert,整行插入只能向下移动,整列插入只能向右移动,这时候shift:=xlShiftDown和shift:=xlShiftToRight都不起作用,所以不用写它们。
Rows(3).Insert表示队伍是上下方向的,排头在上,排尾在下。要将所有队伍的第3个位置空出来,第3个位置的元素和它后面的所有元素都向后移动1个位置。
Rows("2:6").Insert表示队伍是上下方向的,排头在上,排尾在下。要将所有队伍的第2~6个位置空出来,第2~6个位置的元素和它后面的所有元素都向后移动5个位置。
Columns(5).Insert表示队伍是左右方向的,排头在左,排尾在右。要将所有队伍的第5个位置空出来,第5个位置的元素和它后面的所有元素都向后移动1个位置。
Columns("D:K").Insert表示队伍是左右方向的,排头在左,排尾在右。要将所有队伍的第4~11个位置空出来,第4~11个位置的元素和它后面的所有元素都向后移动8个位置。
这里的Columns("D:K").Insert不能换成Columns("4:11").Insert否则会报错。暂时还没找到更好的办法。