Excel VBA编程  获取单元格中数据信息
使用VBA语句,可以利用单元格的各种属性(如字体、填充颜、对齐方式等)将工作表的操作界面设置的更加美观。还提供了其他的方法来获取这个属性的值,下面就来介绍如何获取单元格中的数据信息。
1.判断单元格内是否输入了公式
在单元格中输入公式后,就会立即计算出公式的值。而要查看单元格内是否输入了公式,可在语句使用Range对象的HasFormula属性。语法格式如下:
格式:表达式.HasFormula
表达式代表了一个Range对象的变量。如果区域中所有单元格均包含公式,则该属性值为 True;如果所有单元格均不包含公式,则该属性值为 False;其他情况下为null。
例如,判断单元格A1中,是否使用了公式。
If Range("A1").HasFormula = True Then
    MsgBox "单元格A1中使用了公式!"
End If
2.判断单元格内是否输入了数组公式
使用Range对象的HasArray属性,可判断单元格内是否输入了数组公式,如果使用返回True,否则为False。语句格式如下:
格式:表达式.HasArray
表达式代表了一个Range对象类型的变量。
例如,在工作表Sheet1中,判断单元格区域B3:E7中的单元格中,是否使用了数组公式。
Sub 是否使用了数组公式()
Dim rg As Range
Dim r As Integer, c As Integer    'r行,c列
Dim a As Integer, b As Integer    ' a,b单元格区域的起始行和列
Set rg = Sheet1.Range("C3:E7")
Range("C3:E7").Select
a = rg.Row
b = rg.Column
For r = rg.Row To rg.Rows.Count + a - 1
    For c = rg.Column To rg.Columns.Count + b - 1
        Sheet1.Cells(r, c).Activate    '设置活动单元格
        '判断是否是数组公式
        If Sheet1.Cells(r, c).HasArray = True Then
            MsgBox "单元格区域中使用了数组公式!"
        End If
    Next c
Next r
End Sub
提  示
必须使用FormulaArray属性设置的数组公式,HasArray属性才会识别。
3.获取单元格内的公式字符串
使用Range对象的Formula属性,用于设置或查看单元格中的公式。它返回或设置一个Variant类型的值,并使用A1样式表示法和宏语言中的对象的公式。语法格式如下:
格式:表达式.Formula
表达式代表了一个Range对象类型的变量。属性后跟内容为单元格计算公式的字符串,即可
为该单元格设置计算公式。
如果引用的单元格中包含一个常量,此属性将返回该常量。如果单元格为空,此属性返回一个空字符串。如果单元格包含公式,Formula属性将该公式作为字符串返回,所用格式与在编辑栏(包括等号)中显示时的格式相同。
如果将单元格的值或者公式设置为日期类型,则 Microsoft Excel 将检查此单元格的数字格式是否符合日期或者时间格式。如果不符合,Microsoft Excel 将把数字格式设置为默认的短日期格式。
如果指定区域是一维或二维区域,则可将公式指定为 Visual Basic 中相同维数的数组。同样,也可在 Visual Basic 数组中使用公式。如果为多单元格区域设置公式,则会用公式填充该区域所有的单元格。
例如,设置工作表Sheet1中A1单元格的公式为A2到A10的和,并显示公式内容,可使用如下代码:
Worksheets("Sheet1").Range("A1").Formula = "=Sum($A$2,$A$10)"
MsgBox "单元格A1的公式为:" & Range("A1").Formula  '查看A1的公式
4.获取单元格的字体对象信息
单元格中的字体对象的信息,可使用Font对象的各个属性来设置或是查看(如Name或Size等)。Font对象的各属性如表14.7所示。
表14.7  Font对象的属性说明
excel函数数组公式编辑方法
名称
说明
Application
如果不使用对象识别符,则该属性返回一个Application对象,该对象表示Microsoft Excel应用程序。如果使用对象识别符,则该属性返回一个表示指定对象(可对一个 OLE 自动操作对象使用本属性来返回该对象的应用程序)创建者的Application对象。只读。
Background
返回或设置图表中使用的文本的背景类型。Variant类型,可读写。可将其设置为XlBackground常量之一。
Bold
如果字体格式为加粗,则该属性值为True。Variant 类型,可读写。
Color
返回或设置对象的主要颜,如注释部分中的表格所示。使用RGB函数可创建颜值。Variant型,可读写。
ColorIndex
返回或设置一个Variant值,它代表字体的颜。
FontStyle
返回或设置字体样式。String类型,可读写。
Italic
如果字体样式为倾斜,则该属性值为True。Boolean类型,可读写。
Name
返回或设置一个Variant值,它代表对象的名称。
Parent
返回指定对象的父对象。只读。
Size
返回或设置字号。可读/写Variant类型。
Strikethrough
如果文字中间有一条水平删除线,则该属性值为True。Boolean类型,可读写。
Subscript
如果字体格式设置为下标,则该属性值为True。默认值为False。Variant类型,可读写。
Superscript
如果字体格式设置为上标字符,则该属性值为True;默认值为False。Variant类型,可读写。
ThemeColor
返回或设置已应用的配方案中的主题颜,该配方案与指定对象相关联。可读/写Variant类型。
ThemeFont
返回或设置与指定对象关联的应用字体方案中的主题字体。可读/写 XlThemeFont类型。
TintAndShade
返回或设置一个Single,使颜变深或变浅。
Underline
返回或设置应用于字体的下划线类型。可为以下XlUnderlineStyle常量之一。Variant类型,可读写。
例如,显示单元格的字体名称,字号,和是否是粗体。
MsgBox Range("A1").Font.Name    '宋体
MsgBox Range("A1").Font.Size    '10
MsgBox Range("A1").Font.Bold    'False

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。