Excel VBA — создание таблицы в определенном расположении не по умолчанию (A1)

Если вы запустите следующий код:

WorkSheet.ListObjects.add(SourceType:=xlSrcRange, Destination:=Range("A10:C13"))

У кого-то может возникнуть соблазн подумать, что это поместит таблицу в диапазон «A10: C13». Это не так, вместо этого в A1 вставляется таблица с одним столбцом и одной строкой (исключая заголовок):

введите здесь описание изображения

Это четко указано в официальной документации этой функции:

Аргумент Destination игнорируется, если SourceType имеет значение xlSrcRange.

Как вставить таблицу в любой другой диапазон ячеек?


person David Rogers    schedule 15.06.2017    source источник


Ответы (2)


Вы добавляете определение диапазона рабочего листа в неправильный параметр.

WorkSheet.ListObjects.add SourceType:=xlSrcRange, Source:=WorkSheet.Range("A10:C13")

Полное описание см. в разделе ListObjects.Add Method (Excel). метода.

person Community    schedule 15.06.2017

Используя документацию, представленную на этой странице, я смоделировал действия пользователя. сделать, чтобы добавить таблицу:

Range("A10:C13").Select
WorkSheet.ListObjects.add(SourceType:=xlSrcRange)

Кажется, что добавление оператора select поместит таблицу в правильное место.

person David Rogers    schedule 15.06.2017
comment
Один из очень немногих случаев в VBA, где .Select действительно полезен! - person FreeMan; 15.06.2017
comment
Полезно, возможно, но не абсолютно необходимо. - person ; 15.06.2017