Я использую 64-разрядный MSO для Office 365.
Я хочу написать макрос VBA, который выбирает различные листы в книге на основе имени листа.
Например,У меня есть две строки кода VBA, которые активируют рабочую книгу, а затем выбирают определенный лист в рабочей книге по имени листа.
Windows("myworkbook").Activate
Sheets("mysheet").Select
Однако мне приходится работать с некоторыми листами, которые содержат значки или смайлики вих. Например, есть лист с таким именем: «? Пациент».
Если я попытаюсь вставить значок / смайлик в VBA следующим образом: Sheets("? Patient").Select
, значок не отображается в VBAредактор. Вместо этого я получаю Sheets("????? Patient").select
.
Я также пытался использовать ChrW () для кодирования? символ скорой помощи (см. здесь: https://www.compart.com/en/unicode/U+1F691)
Когда я запускаю этот макрос ниже), я получаю invalid procedure call or argument
, как указано ниже.
Sub SelectWeirdSheet()
Windows("MYWorkbook.xlsx").Activate
x = ChrW(128657) ' get invalid procedure call or argument here
Sheets(x & " Patient").Activate
End Sub
Я также пробовал код для скорой помощи. .. также пытался ChrW(&H1F691)
, но я получаю ту же ошибку. Я подозреваю, что я использую неверный аргумент для ChrW () , но я потерян.
edit: Итак, в документах говорится, что мой аргумент для ChrW () не соответствуетассортимент. Это помогает объяснить ошибку, но я все еще пропускаю обходной путь.
Вопрос : Есть ли способ сослаться на использование VBA для выбора рабочих листов, которые имеют значок / эмодзи какчасть их имени?
Я знаю, что вы также можете ссылаться на листы по номеру индекса, как этот Sheets(3).Select
. Тем не менее, будут случаи, когда я заранее не знаю индекс листа, но я буду знать имя листа, поэтому для меня лучше назвать листы по имени.
Спасибо.