#excel #vba
#excel #vba
Вопрос:
Моя электронная таблица использует CHOOSE
формулу, чтобы определить, какую таблицу использовать при вычислении. Я предварительно создал эту формулу выбора с 12 именами на выбор. Я еще не создал все 12 объектов для этой формулы.
Я попытался присвоить таблице имя после одного из имен, указанных в формуле выбора ниже:
CHOOSE('Loss Template'!$M$50,Jun_20, July_20, Sept_20, Oct_20)
ПРИМЕЧАНИЕ: Нет известного объекта с таким именем Oct_20
Excel сказал: «Имя уже существует, и мне нужно сделать имя уникальным».
Действия, которые я выполнил:
-
Я попытался удалить
Oct_20
из выбрать и назвать таблицу, а затемТо же предупреждение «Уже существует»
-
Пытался найти объект с таким именем с помощью панели быстрого доступа
«Oct_20» не существует и не может быть найден с помощью этой функции
-
Удалены все неиспользуемые имена с помощью VBA
То же предупреждение «Уже существует»
-
Не удалось найти
Oct_20
в «Formulas -> Names Manager»
Я пытаюсь использовать Oct_20
в качестве имени таблицы любую идею о том, как это исправить?
Комментарии:
1. @BigBen там тоже не существует
2. Можете ли вы назвать его ЛЮБОЙ из строк даты? Или проблема возникает только в Oct_20?
3. Я могу делать другие вещи, например, полностью указывать октябрь, но я пытался упростить именование путем сокращения, но я не могу с этим месяцем, потому что «он уже существует», несмотря на то, что я вообще не могу его найти
4. Я просто пытаюсь удалить то, что когда-либо имело это имя в настоящее время, чтобы я мог использовать это имя
5. Итак, вы МОЖЕТЕ назвать таблицу
Sep_20
?
Ответ №1:
Чтобы отобразить ВСЕ имена в вашей книге, в обычном модуле книги:
Sub showAllNames()
Dim Nm As Name
For Each Nm In ThisWorkbook.Names
Debug.Print Nm.Name, Nm.RefersTo
Next Nm
End Sub
Примечание: Если Name
не существует, то проблема в том, что вы ввели CHOOSE
формулу (содержащую имена) до того, как назвали таблицы. Измените эту формулу на текст; затем попробуйте присвоить таблицам имена; затем измените его обратно на формулу.
Как только вы будете удовлетворены, Oct_20
это можно удалить:
Sub DeleteHiddenName()
Dim sNM As String, Nm As Name
sNM = InputBox("What Name?")
Set Nm = ThisWorkbook.Names(sNM)
Nm.Delete
End Sub
Очевидно, что для работы этим макросам потребуется проверка ошибок и другие вещи. Но это может помочь вам начать.
Комментарии:
1. Я получаю ошибку времени выполнения «1004», когда я попробовал ваш приведенный выше код
2. @PotterFan В какой строке? И какой код? Я опубликовал два.
3. Код удаления на
Set Nm = ThisWorkbook.Names(sNM)
4. @PotterFan
Oct_20
отображался при использовании первого кода? Если да, то что этоReferTo
дало?5. @PotterFan Вы не можете удалить имя, которое не существует. Отсюда и ошибка.