Excel listObject issue

JQuery спросил: 28 апреля 2018 в 08:24 в: excel

Я унаследовал электронную таблицу, полную VBA, о которой я почти ничего не знаю.

Когда данные обновляются, электронная таблица повторно форматирует себя через VBA. Мне пришлось изменить некоторые имена табов и имена таблиц, и теперь, когда автоматический переформатирование в нем вызывает ошибку, поскольку он ищет имя старой таблицы.

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

Таким образом, я получаю ошибку

Ошибка времени выполнения '450': неправильное количество аргументов или недопустимое присвоение свойств

debug возвращает меня к этой строке

For Each rptTable In sID.ListObjects
    rptTable.TableStyle = teamName   <--- this is the highlighted line in debug
    oldSize = rptTable.ListRows.Count
    If oldSize < teamSize Then

имя_группы имеет новое значение, значение rptTable.TableStyle имеет старое значение.

переменные определяются следующим образом:

Sub FormatSheet(sID As Worksheet)
'Clear debugWindow
Call clearDebugConsole
Application.StatusBar = "Formatting Teamsheet ... "'Change Active Sheet to the Sheet being Formatted
Worksheets(sID.Name).ActivateDebug.Print "* Entered FormatSheet Sub"' Set Variables
....
Dim rptTable As ListObject

Я в основном пытаюсь выяснить, как заполняется ListObject и откуда берется старое имя? глобальный поиск в электронной таблице Excel не подбирает его


1 ответ

Radek Piekný ответил: 28 апреля 2018 в 08:39

Ну, похоже, что teamname имеет значение, которое не соответствует чему-либо в TableStyles.

остановите код в этой строке и посмотрите, какая переменная teamname имеет значение. Там должна быть ценность, которая существует в ваших стилях таблиц. Я предполагаю, что есть пустая строка. Вам нужно присвоить ему что-то вроде "TableStyleMedium2" и т. Д. Вы можете найти эти имена в ленте дизайна - > стилей таблицы. Используйте значение без пробелов.

JQuery ответил: 28 апреля 2018 в 08:47
Ах нормально, поэтому я думаю, что проблема заключается в том, что кто-то создал пользовательские стили таблиц и дал им свое имя. Мне просто нужно выяснить, как изменить имя табулиста
Radek Piekný ответил: 28 апреля 2018 в 08:48
Хорошо, что вы разместили только часть кода, поэтому мы не можем сказать, где объявлено имя команды и как программа использует эту переменную. Посмотрите ctrl-f и посмотрите, где он используется и как.
JQuery ответил: 28 апреля 2018 в 08:50
нет, это здорово, что ты указал мне в правильном направлении. Они создали собственные стили таблиц со своими именами. Когда я изменил имя таблицы в интерфейсе, он больше не соответствовал имени стиля таблицы. имя стиля таблицы никогда не появлялось в ctrl-f, но я узнал, как изменить их сейчас. Спасибо