Excel精英培训网

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

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

[复制链接]
发表于 2013-12-28 13:59 | 显示全部楼层 |阅读模式
  Left 属性
  返回一个 Variant 值,它代表从列 A 的左边缘到区域的左边缘的距离(以磅为单位)。
  说明
  如果该区域不连续,则使用第一块区域。如果该区域有若干列宽,则使用区域中最左边的列。
  示例:
  Private Sub Worksheet_SelectionChange(ByValTarget As Range)
     Dim shp As Shape
     Set shp = ActiveSheet.Shapes(1)
     With shp
         .Left = Target.Left
          .Top = Target.Top
         .Width = Target.Width
         .Height = Target.Height
     End With
  End Sub
  在特定的工作表中插入一个矩形形状,写入工作表事件。
  每当在特定的工作表中重新选择一个新的单元格或区域时,矩形就会覆盖在选中的单元格或区域之上。
  无法双击进入单元格编辑模式。可以试着把形状的填充颜色改成无。


  Top 属性
  返回或设置一个 Variant 值,它代表行 1 上边缘到区域上边缘的距离(以磅为单位)。
  说明:
  如果该区域不连续,则使用第一块区域。如果该区域有若干行,则使用区域中的顶端行(行号最小的行)。
  可参考Left属性的演示代码。
  通常Left,Top这些属性在用于指定形状、控件、图表的位置时比较常用。

  Width 属性
  返回一个 Variant 值,它代表区域的宽度(以单位表示)。
  示例参考Left属性的代码。

  Height 属性
  返回或设置一个 Variant 值,该值代表区域的高度(以磅为单位)。
  示例参考Left属性的代码。

  ColumnWidth 属性
  返回或设置指定区域中所有列的列宽,Variant 类型,可读写。
  说明
  一个列宽单位等于“常规”样式中一个字符的宽度。对于比例字体,则使用字符 0(零)的宽度。
  使用 Width 属性可返回以磅为单位的列宽。
  如果区域中所有列的列宽都相等,ColumnWidth 属性返回该宽度值。
  如果区域中的列宽不等,该属性返回 null
  示例:
  Dim str$
  With Range("a1")
    str = "Width属性:" & .Width & vbCrLf
    str = str & "ColumnWidth属性:" &.ColumnWidth & vbCrLf
    str = str & "Height属性:" &.Height & vbCrLf
    str = str & "RowHeight属性:" &.RowHeight
  End With
  MsgBox str

  ActiveSheet.UsedRange.Clear
  With [a1]
    .Value = 0
    .EntireColumn.AutoFit
    .Offset(, 1).Value = 12
    .Offset(, 1).EntireColumn.AutoFit
    .Offset(, 2).Value = "hwc2ycy"
    .Offset(, 2).EntireColumn.AutoFit
     .EntireColumn.AutoFit
     MsgBox .Resize(, 3).ColumnWidth
      '产生代码为94的运行错误:无效使用NULL
      '因为3列的宽度不相同
  End With


  RowHeight 属性
  以磅 为单位返回或设置指定区域中所有行的行高。
  如果指定区域中的各行的行高不等,则返回 null可读写。
  (磅:指打印的字符的高度的度量单位。1 磅等于 1/72 英寸,或大约等于 1 厘米的 1/28
  说明:
  可使用 Height 属性返回整个单元格区域的高度。
  以下是 RowHeight Height 的不同之处:
  Height 为只读
  如果要返回几行的 RowHeight 属性,可得到每一行的行高(如果所有的行等高),或得到 null(如果它们不等高)。
  如果要返回几行的 Height 属性,将得到所有行高的总和。
  示例:
  Rows(1).RowHeight = 9
  Rows(2).RowHeight = 10
  Rows(3).RowHeight = 12
  '注意设置行高不能用rows(3).heightheight属性只读
  With Rows("1:3")
     MsgBox .Height
     MsgBox .RowHeight
      '使用RowHeight时产生代码为94的运行错误: 无效使用NULL
      '因为3列的行高不相同
  End With


  HasFormula 属性
  如果区域中所有单元格均包含公式,则该属性值为 True
  如果所有单元格均不包含公式,则该属性值为 False
  其他情况下为 null
  示例:
  Function Formulalen(rg As Range) As Long
    Application.Volatile
     '用于将用户自定义函数标记为易失性函数
     '无论何时在工作表的任意单元格中进行计算时
     '易失性函数都必须重新进行计算。'
    If rg(1).HasFormula Then
        '防止参数为多区域的情况
        '只检测每一个区域中的第一个单元格
         Formulalen = Len(rg.Formula)
     End If
  End Function
  13版本中,EXCEL已经提供了计算单元格公式长度的函数。


  Hidden 属性
  返回或设置一个 Variant 值,它指明是否隐藏行或列。
  将此属性设置为 True 以隐藏行或列。
  指定的区域必须占据整个行或整个列。
  请不要将此属性与 FormulaHidden 属性混淆。
  Dim i As Long
  For i = 1 ToRange("a1").CurrentRegion.Rows.Count
       Rows(i).Hidden = Cells(i, 1).Value <= 50
       'cells(i,1).entirerow.hidden=Cells(i, 1).Value <= 50
  Next
  Application.ScreenUpdating = True
  MsgBox "处理完成"
  A列单元格的值如果小于等于50则隐藏所在的行。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-28 15:22 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-14 20:18 | 显示全部楼层
回复

使用道具 举报

发表于 2014-5-9 14:16 | 显示全部楼层
好强大
回复

使用道具 举报

发表于 2014-5-9 14:32 | 显示全部楼层
更新好快,学习了
回复

使用道具 举报

发表于 2014-6-18 12:36 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-26 21:04 | 显示全部楼层
谢谢分享,标记,六十三
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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