Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3063|回复: 2

[分享] 【烟花原创】VBA零基础之第76篇 单元格对象Range(二十)

[复制链接]
发表于 2014-1-11 13:48 | 显示全部楼层 |阅读模式
Insert 方法
 在工作表或宏表中插入一个单元格或单元格区域,其他单元格相应移位以腾出空间。
 语法:Insert(Shift, CopyOrigin)
  Shift 可选,指定单元格的调整方式。
   可为以下 XlInsertShiftDirection 常量之一:xlShiftToRight xlShiftDown
   如果省略此参数,Microsoft Excel 将根据区域的形状确定调整方式。
 CopyOrigin 可选复制的起点。其值如下:
   xlFormatFromLeftOrAbove 0
   xlFormatFromRightOrBelow1
  该参数用来设置插入的单元格的格式从哪个单元格复制。
 其实这动笔写这篇之前,这两个参数平时也没有注意过,一直是用无参数的方法在调用。
 CopyOrigin参数使用方法:
   1.当Shift是XlshftDown时,XlFormatFromLeftOrAbove是从上方单元格取格式,
     xlFormatFromRightOrBelow是从下方单元格取格式,与左右单元格的格式无关。
  2.当Shift是xlShiftToRight时,XlFormatFromLeftOrAbove是从左侧单元格取格式,
     xlFormatFromRightOrBelow是从右侧单元格取格式,与上下单元格的格式无关。
  当不需要考试到单元格的格式时,可以省略CopyOrigin参数。
 另外需要注意的地方是,当是在表格里插入时,为避免插入后单元格下移或右移后造成内容错位的现象,
 建议整行或整列插入。
 示例1
  With Range("A1")
   .CurrentRegion.Clear
   '注意,凡是示例中用到的Clear系列方法均是为了演示效果
   '实际用时根据需要判断是否需要
   '否则误清了数据,你懂的。
   .Interior.Color = 49407
   .Value = "A1"
   .Insert shift:=xlShiftDown
   .Offset(-1).Value = "新插入的单元格"
   '插入后,原来的A1单元格下移成A2了
   '所以用offset(-1)指向新插入的单元格
   .Insert shift:=xlShiftDown, copyorigin:=xlFormatFromRightOrBelow
   .Offset(-1).Value = "新插入,格式复制右侧或下方单元格"
   .CurrentRegion.EntireColumn.AutoFit
  End With
 效果图1
   76-1.jpg

 示例
2
  With Range("A1")
    .CurrentRegion.Clear
    .Interior.Color = 49407
    .Value = "A1"
    .Insert shift:=xlShiftToRight
    '没有指定CopyOrigin参数,自然无格式
    .Offset(, -1).Value = "新插入的单元格"
    '插入后,原来的A1单元格右移成B1了,
    
'所以用offset(,-1)指向新插入的单元格
    .Insert shift:=xlShiftToRight, copyorigin:=xlFormatFromRightOrBelow
    .Offset(, -1).Value = "新插入,格式复制右侧或下方单元格"
    .CurrentRegion.EntireColumn.AutoFit
  End With
 效果图2
   76-2.jpg

 示例3
  Range("a1").Value = 1
  Range("a1").Resize(6).Insertshift:=xlShiftDown
  ‘A1上方插入6个单元格

 关于如何插入多列,多选区域插入希望大家举一反三,用代码练习。
  
 作业
1
  用代码实现隔行插入,效果如下图:
    76-3.jpg




excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-6-18 12:39 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-29 20:28 | 显示全部楼层
  1. For i = 6 To 1 Step -1
  2. Cells(i, 1).Insert shift:=xlShiftDown
  3. Next i
复制代码
谢谢分享,标记,七十六
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 16:29 , Processed in 0.663209 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表