2016-07-18 1 views
1

Я хочу дать ячейке имя для моего листа (064149107). Имя не может быть изменено, и в книге есть много листов.Вставьте имя листа Начиная с 0 в ячейку

Мой код работает отлично, за исключением, когда имя моего листа начинается с 0.

Например, вместо 064149107 я получаю в ячейке 64149107.

Как я делаю ВПР после этого, у меня нет ни одного совпадения найденного и ошибки 2042 года

вот мой код:

sht.Cells(LastRowsht + 1, 2) = sht.Name 

я попытался также это:

  If Left(sht.Name, 1) = "0" Then 'règle le probleme d'un sheet name commencant par 0 
      sht.Cells(LastRowsht + 1, 2) = "0" & sht.Name 
      Else 
      sht.Cells(LastRowsht + 1, 2) = sht.Name 
      End If 

Но я не работал.

+0

Я предполагаю, что Excel преобразует строку в число. Просто сохраните значение как строку. – Comintern

+0

Обратите внимание, что вам действительно не нужно VBA для размещения имени листа в ячейке. – trincot

ответ

1

Этот код помещает галочку ' символ перед именем.

sht.Cells(LastRowsht + 1, 2).Value = chr(39) & sht.Name 

В качестве альтернативы, вы можете установить формат ячейки для Text первого:

sht.Cells(LastRowsht + 1, 2).NumberFormat = "@" 
sht.Cells(LastRowsht + 1, 2).Value = sht.Name 
+0

Если это работает для вас, пожалуйста, примите зеленую галочку. – Chrismas007

+0

Спасибо, отлично – Florian

+0

@Florian Пожалуйста, примите ответ с зеленой галочкой. – Chrismas007

0

могли бы вам не попробовать что-то вроде:

sht.Cells(LastRowsht + 1, 2).Value = "'" & sht.Name 

Я не пробовал, но по явно сделав его текстом, я думаю, что он должен работать.

0

Вы должны просто изменить формат ячейки через ленту «Главная», на вкладке «Число», изменить «Общие» на «Текст». Затем запустите код еще раз.

Обратите внимание, что вам не требуется VBA, чтобы заполнить имя листа в ячейке. Это можно сделать с помощью формулы в ячейке:

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255) 
Смежные вопросы