2013-05-31 3 views
1

Так что я столкнулся с прекрасной ошибкой времени выполнения 1004: Определенная заявка или объектная ошибка.Ошибка времени выполнения 1004 при вставке строк/столбцов

Этот медведь, в половине случаев, когда код в VBA работает правильно, без проблем, а другая половина падает на его лицо. Третья строка («Mgmt.List .....») запускается в цикле в обычном режиме, но у меня нет никаких проблем с использованием этого простого макроса.

Sub whyyyy() 
    Dim Mgmt As Worksheet 
    Set Mgmt = Sheets("Mgmt MarginAnalysis") 
    Mgmt.ListObjects("Table4").ListRows.Add (3) 
End Sub 

Линия

Mgmt.ListObjects("Table4").ListRows.Add (3) 

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

Не знаю, что заставляет его работать, а что нет. Это только начало происходить, и комбинация таблиц/таблиц, похоже, происходит только с таблицами, которые я недавно вставлял (не используя VBA).

+0

вы можете попытаться обратиться к 'ListObjects (index)' вместо 'ListObjects (name)' –

+0

Вам придется простить меня, так как я только начал работать с VBA несколько дней назад, но это индекс только ячейки диапазон таблицы? – user2441191

ответ

0

У вас есть номер Sheets("Mgmt Margin Analysis") с таблицей «Таблица4». Если вы создаете таблицу во время выполнения, возможно, ей не присваивается одно и то же имя («Таблица 4») каждый раз, когда он создается.

Обязательно укажите это имя в своем коде и не позволяйте Excel выбирать имя для вас.

+0

Таблица уже находится в рабочем листе до запуска макроса, но я оставляю именование в Excel ... Возможно ли, что система автоматического именования Excel вошла в нее при запуске макроса? В любом случае, я должен назвать свои таблицы ради документации. – user2441191

Смежные вопросы