Да, эти имена используются в целях программирования, но эти имена также видны пользователю, поэтому это интересная проблема ... Чтобы решить ее, вы можете просто обратиться к диаграмме по ее целочисленному значению индекса.
Например, вместо:
ActiveSheet.ChartObjects("Chart 6").Activate
Вы можете использовать:
ActiveSheet.ChartObjects(6).Activate
Выше я предполагал, что «Диаграмма 6» индексируется значением 6, но в действительности это может быть любое число. Например, если вы создали и уничтожили пять предыдущих диаграмм, и теперь эта диаграмма является единственной диаграммой на листе, диаграмма с именем «Диаграмма 6» будет фактически проиндексирована целым значением 1 (1).
Таким образом, вам придется выяснить, какому индексному номеру соответствует ваша диаграмма, а затем использовать это значение индекса в вашем коде.
Имеет смысл?
Обновление: ответ Лорану
Что касается имени, отображаемого на
пользователь, что если я назвал график
"Моторная"?
Вот и все! Это твой ответ !!
Я собирался предложить вам придерживаться той части имени, которая не меняется. Например, «Диаграмма 6» изменяется на «フ ラ フ 6». Таким образом, в этом случае вы должны просто просмотреть все графики в поисках той, которая заканчивается именем «6». Но, что еще лучше, стоит просто избегать слов, которые будут автоматически переведены. Поэтому вместо того, чтобы называть его «Диаграмма 6», назовите его, да, «Моторная лодка» или что-то еще, что не будет автоматически переведено.
Используя этот подход, вместо:
ActiveSheet.ChartObjects("Chart 6").Activate
Вы бы использовали:
ActiveSheet.ChartObjects("Motorboat").Activate
Согласился, что это не идеально. Для диаграмм может даже существовать программное кодовое имя, о котором я не знаю, которое, если оно существует, позволит вам использовать любое имя, которое вы захотите. Но, в отсутствие такой функции, использование названия для вашей диаграммы, которое не будет переведено, кажется лучшим и самым простым способом.
Надеюсь, это поможет!
Mike