Какие символы допустимы в имени листа - Советы по Excel

Содержание

Имена рабочих листов можно изменить практически на все. Это * почти * часть, которая для меня нечеткая. Есть несколько символов, которые нельзя использовать на вкладке рабочего листа. Но как понять, что это за персонажи? Сегодня я покажу вам, как это сделать.

Одно из моих самых популярных видео на YouTube - Подкаст № 1505 - Номер следующего счета. Я помню, как 20 лет назад загрузил шаблон счета от Microsoft и был разочарован тем, что в шаблоне не было ничего, что увеличивало бы номер счета после каждого сохранения. Шесть лет назад я записал короткое видео с несколькими строками кода VBA, чтобы обновлять номер счета при каждом сохранении. Спустя 222 000 просмотров он остается моим видео №1.

Три раза в неделю со мной связывается кто-то, кто хочет изменить макрос, чтобы сделать что-то другое. На прошлой неделе кто-то сказал мне, что мой код выдает ошибку 1004. Всегда трудно устранить неполадки, не видя книгу. Строка кода, вызывавшая ошибку, была строкой, которая переименовала рабочий лист в значение, хранящееся в ячейке E5.

Вот как я напоминаю себе, какие символы запрещены. Следуй этим шагам:

  1. Нажмите Ctrl + N, чтобы создать новую книгу Excel.
  2. Формула в A1 есть =ROW(). Скопируйте в A1: A255. Это быстро дает вам числа от 1 до 255.
  3. Формула в B1 есть =CHAR(A1). Скопируйте в B1: B255. Это дает вам 255 символов ASCII. Вы увидите заглавную букву A в строке 65.
  4. Нажмите alt = "" + F11, чтобы открыть VBA. В меню VBA выберите «Вставить модуль». Скопируйте следующий код в VBA.

    Sub CheckAll() On Error Resume Next For i = 1 To 255 Err.Clear ActiveSheet.Name = "A" & Cells(i, 2).Value Cells(i, 3).Value = Err.Number Next i End Sub
  5. Щелкните в любом месте макроса. Нажмите F5, чтобы запустить. Это займет всего несколько секунд. Нажмите alt = "" + Q, чтобы закрыть и вернуться в Excel. Макрос попытался дать листу 255 разных имен. В столбце C отображается код ошибки после каждой попытки. Ноль - это хорошо. 1004 - это плохо.
  6. Было бы неплохо добавить несколько заголовков, чтобы можно было фильтровать. Скопируйте A1: C255. Вставить как значения. Вставьте новую строку 1 с заголовками «Код», «Символ», «Имя».
  7. Включите фильтр. Откройте раскрывающийся список в C1. Снимите все флажки с ошибкой 0. В оставшихся 9 строках отображается ошибка 1004.

Как вы можете видеть на изображении ниже, 9 символов * / :? () - это те символы, которые нельзя использовать в имени рабочего листа. (Это апостроф, звездочка, косая черта, двоеточие, вопросительный знак, левая квадратная скобка, обратная косая черта, правая квадратная скобка.)

9 символов, отображаемые в столбце B, вызовут ошибку 1004, если вы попытаетесь использовать их в имени рабочего листа.

Я вернулся к человеку на YouTube и спросил, содержит ли ячейка E5 дату в формате MM / DD / YYYY. При изменении на WS.Name =Format(Range("E5").Value,"MM-DD-YYYY")дата содержит тире вместо косой черты, и код сработал.

Вот объяснение важных частей кода:

  • При возобновлении ошибки далее сообщает Excel не останавливать макрос при обнаружении ошибки. Err.Number и Err.Description будут доступны после обнаружения ошибки.
  • Err.Clear очищает все предыдущие ошибки, возникшие при предыдущем прохождении цикла.

Кстати, меня всегда восхищает, какие символы * допустимы * в имени рабочего листа. На рисунке ниже=CHAR(3)&CHAR(6)&CHAR(7)&CHAR(6)&CHAR(4)

Используйте ActiveSheet.Name = ActiveCell.Value

Каждую пятницу я буду писать об отладке подозрительного поведения в Excel.

Идея дня в Excel

Я попросил совета у моих друзей-мастеров Excel по поводу Excel. Сегодняшняя мысль задуматься:

«Не все цвета в Excel предназначены для реального использования».

Майк Александр

Интересные статьи...