ListRanges 枚举

指定已发生更改的 ListObject 的范围。

此枚举有一个 FlagsAttribute 特性,通过该特性可使其成员值按位组合。

命名空间:  Microsoft.Office.Tools.Excel
程序集:  Microsoft.Office.Tools.Excel(在 Microsoft.Office.Tools.Excel.dll 中)

语法

声明
<FlagsAttribute> _
Public Enumeration ListRanges
[FlagsAttribute]
public enum ListRanges

成员

成员名称 说明
None 该更改未发生在 DataBodyRangeHeaderRowRangeTotalsRowRange 中。
HeaderRowRange ListObjectHeaderRowRange 中发生的更改。
DataBodyRange ListObjectDataBodyRange 中发生的更改。
TotalsRowRange ListObjectTotalsRowRange 中发生的更改。

备注

ListRanges 枚举由 ListObjectChangeHandler 委托的某个参数使用。

示例

下面的代码示例创建一个 ListObject,并为 Change 事件创建事件处理程序。 该事件处理程序使用 ListRanges 值来显示已更改的范围所在的位置。 若要引发 Change 事件,请向 ListObject 中的某个单元格添加文本,然后按 Enter。

此示例针对的是文档级自定义项。

WithEvents ChangeList As Microsoft.Office.Tools.Excel.ListObject
Private Sub ListObject_Change()
    ChangeList = Me.Controls.AddListObject( _
        Me.Range("A1", "C4"), "ChangeList")
End Sub


Sub List1_Change(ByVal targetRange As _
    Microsoft.Office.Interop.Excel.Range, _
    ByVal changedRanges As Microsoft.Office.Tools.Excel.ListRanges) _
    Handles ChangeList.Change

    Dim cellAddress As String = targetRange.Address( _
        ReferenceStyle:=Excel.XlReferenceStyle.xlA1)

    Select Case changedRanges
        Case Microsoft.Office.Tools.Excel.ListRanges.DataBodyRange
            MsgBox("The cells at range " & cellAddress & _
                " in the data body changed.")
        Case Microsoft.Office.Tools.Excel.ListRanges.HeaderRowRange
            MsgBox("The cells at range " & cellAddress & _
                " in the header row changed.")
        Case Microsoft.Office.Tools.Excel.ListRanges.TotalsRowRange
            MsgBox("The cells at range " & cellAddress & _
                " in the totals row changed.")
        Case Else
            MsgBox("The cells at range " & cellAddress & _
                " changed.")
    End Select
End Sub
private void ListObject_Change()
{
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(
        this.Range["A1", "C4"], "list1");
    list1.Change += new Microsoft.Office.Tools.Excel.
        ListObjectChangeHandler(list1_Change);
}

void list1_Change(Microsoft.Office.Interop.Excel.Range 
    targetRange, Microsoft.Office.Tools.Excel.ListRanges 
    changedRanges)
{
    string cellAddress = targetRange.get_Address(
        missing, missing, Excel.XlReferenceStyle.xlA1, 
        missing, missing);

    switch (changedRanges)
    {
        case Microsoft.Office.Tools.Excel.ListRanges.DataBodyRange:
            MessageBox.Show("The cells at range " + cellAddress +
                " in the data body changed.");
            break;
        case Microsoft.Office.Tools.Excel.ListRanges.HeaderRowRange:
            MessageBox.Show("The cells at range " + cellAddress +
                " in the header row changed.");
            break;
        case Microsoft.Office.Tools.Excel.ListRanges.TotalsRowRange:
            MessageBox.Show("The cells at range " + cellAddress +
                " in the totals row changed.");
            break;
        default:
            MessageBox.Show("The cells at range " + cellAddress +
                " changed.");
            break;
    }
}

请参见

参考

Microsoft.Office.Tools.Excel 命名空间