Export (0) Print
Expand All

ListObject.Change Event

Occurs when something changes in the ListObject control.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel (in Microsoft.Office.Tools.Excel.dll)

event ListObjectChangeHandler Change

This event is raised if the ListObject control is changed by either a programmatic modification or user interaction.

This event does not occur when cells change during a recalculation.

The following code example creates a ListObject and a Change event handler. To raise the Change event, add text to one of the cells in the ListObject and then press ENTER.

This version is for a document-level customization.

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(
        Excel.XlReferenceStyle.xlA1 
        );

    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;
    }
}

This version is for an application-level add-in.

private void ListObject_Change()
{
    Worksheet vstoWorksheet =
Globals.Factory.GetVstoObject(this.Application.ActiveWorkbook.Worksheets[1]);
    ListObject list1 =
        vstoWorksheet.Controls.AddListObject(
        vstoWorksheet.Range["A1", "C4"], "list1");
    list1.Change += new ListObjectChangeHandler(list1_Change);
}

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

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

Show:
© 2015 Microsoft