CottLi
2/29/2020 - 3:19 AM

VBA#单元格信息

' 1. 单元格的值:Value, Text, Formula
Range("b10") = Range("c2").Value  ' 返回单元格C2的数值部分:自定义格式添加的文本不被返回
Range("b11") = Range("c2").Text   ' 单元格C2显示什么 .Text 属性就返回什么
Range("b12") = "'" & Range("c2").Formula  ' .Formula 属性返回单元格C2的公式, 返回的公式前拼接上单引号 "'" 是为了把公式显示为文本

' 2. 单元格的地址
With Range("b2").CurrentRegion
  [b12] = .Address        ' 返回B2的绝对地址
  [c12] = .Address(0, 0)  ' 行和列地址均相对引用(即返回的地址无符号 $)
  [d12] = .Address(1, 0)  ' 行绝对,列相对
  [e12] = .Address(0, 1)  ' 行相对,列绝对
  [f12] = .Address(1, 1)  ' 行绝对,列绝对,默认情况
End With

' 3. 单元格的行列信息
With Range("b2").CurrentRegion
  [b12] = .Row            ' 获取单元格区域第一行的行号
  [b13] = .Rows.Count     ' 获取单元格区域的总行数
  [b14] = .Column         ' 获取单元格区域第一列(最左边的列)的列数
  [b15] = .Columns.Count  ' 获取单元格区域的总列数
  ' 重点:返回单元格区域的顶点(左上角)单元格的地址
  [b16] = .Range("a1").Address  ' 注意:此处的A1为以B2为原点的A1,不是工作表绝对的A1
End With

' 4. 单元格的格式信息
With Range("b2")
  [b17] = .Font.Size            ' 字体大小
  [b18] = .Font.ColorIndex      ' 字体颜色(编号)
  [b19] = .Interior.ColorIndex  ' 背景颜色
  [b20] = .Borders.Linestyle    ' 边框的线型
End With

'5. 单元格批注信息
[b21] = Range("I2").Comment.Text  ' 返回批注的文本
' Range("I2").Comment.Shape ' 返回批注对象

' 6. 单元格的位置信息
With Range("b3")
  [b22] = .Top                  ' 单元格上边距
  [b23] = .Left                 ' 单元格左边距
  [b24] = .Height               ' 单元格的高度
  [b25] = .Width                ' 单元格的宽度
End With

'7. 单元格的上级信息:单元格的上级是工作表,工作表的上级是工作簿
With Range("b3")
  [b26] = .Parent.Name  ' 单元格B3的Parent返回工作表对象(注意:返回的是对象)
  [b27] = .Parent.Parent.Name ' 返回单元格上级的上级的名称,即工作簿的名称
End With

' 8. 内容判断
With Range("i3")
  [b28] = .HasFormula   ' 单元格I3是否有公式,返回TRUE或FALSE
  [b29] = Hyperlinks.Count  ' 单元格I3所含的链接的数量,返回整型数
End With