Как использовать активность изменения имени листа

Всегда благодарим вас за сотрудничество.
Я хотел бы получить совет: доступна ли активность «Изменить имя листа» только в рамках активности работы с файлом Excel?

У меня есть робот, который использует только диапазон приложения, и из-за этого менять его на активность работы с файлом Excel было бы затруднительно. Если есть способ изменить имя листа, пожалуйста, дайте знать.

Спасибо за вашу помощь.

Здравствуйте

Я хотел бы уточнить, можно ли использовать активность «Переименовать лист» только внутри активности использования Excel-файла.

Я считаю, что это так.

В качестве решения я думаю, что вам следует заменить область приложения Excel на активность использования Excel-файла (область процесса Excel).
(Активности под областью приложения Excel также будут работать под активностью использования Excel-файла.)

Здравствуйте, @Teo
Да, активность Переименовать лист из современных Excel-активностей требует контейнер ресурса Использовать файл Excel для правильной работы.

Если вы предпочитаете использовать классический Excel Application Scope, вы можете переименовать лист непосредственно с помощью VBA/Макросов или активности Invoke Code, не переходя на современные активности во всем вашем процессе.

Привет, @Teo,
Если файл является рабочей книгой Excel, то лучше всего использовать активности Excel/Workbook для переименования листов, а не автоматизацию интерфейса, так как это более стабильно и удобно для поддержки.

Спасибо.

Привет @Teo

Добро пожаловать в сообщество и спасибо, что подняли этот вопрос,

Пожалуйста, найдите мой ответ ниже,

Вы можете попробовать использовать
Sub RenameSheet()
ThisWorkbook.Sheets(“Sheet1”).Name = “NewSheetName”
End Sub

С использованием активности Invoke VBA это сработает. Дайте знать, если это сработает. Нажмите на кнопку решения, это поможет другим, кто столкнется с той же проблемой.

Привет, @Teo

Да, активность Переименовать лист работает в рамках Excel-связанных активностей/контекста, потому что ей нужен контекст книги Excel.

Если ваш робот использует только Контекст приложения, вы можете использовать Контекст процесса Excel / Использовать файл Excel, а затем использовать Переименовать лист внутри него.

В качестве альтернативы, если вы не хотите использовать активность Excel, вы можете переименовать лист с помощью Invoke Code с API Excel Interop, но это более сложно и обычно не рекомендуется.

Привет @Teo,

Вы можете использовать активность “Использовать файл Excel”, но только для изменения имени листа, чтобы не нарушать весь процесс. Это будет вложено в вашу существующую активность “Область Excel” для переименования листа.

В противном случае, если вы не хотите использовать активность “Файл Excel”, вы также можете попробовать использовать “Вызов кода” или “Выполнить макросы”.

Удачи!

Спасибо.
Я смог подтвердить, что это работает.