1

Я добавляю новую строку в таблицу на активном листе, используя следующий метод:

ActiveSheet.ListObjects("MyDataTable1").ListRows.Add(AlwaysInsert:=True)

Проблема в том, что это зависит от имени таблицы "MyDataTable1". Если я изменю активный лист на тот, в котором имя таблицы - "MyDataTable2", я тоже должен изменить свой код. Есть ли способ автоматически найти таблицу в активном листе, чтобы мне не приходилось менять код при каждом переключении между листами?

1 ответ1

0

Вы могли бы сделать что-то вроде этого псевдокода

dim name as string 
name = Screen.ActiveDatasheet.Name

dim dataTableName as string

Select(name)

case "Sheet1"
    dataTableName "MyDataTable1"

end select

ActiveSheet.ListObjects(dataTableName).ListRows.Add(AlwaysInsert:=True)

Или вы можете просмотреть все элементы управления с помощью следующего (НЕ проверено)

dim dataTableName as string
dim myControl As Control


For Each myControl In Me.Controls

    If TypeName(myControl) = "DataTable" Then

        dataTableName = myControl.Name

    End If

 Next myControl 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .