Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Переименование листа по ячейке. ошибка 400. Дополнительные условия., Данные в ячейке, из которой макросом переименовывались листы, оказались неуникальными. Переименование спотыкается на таких листах.
 
Sub RenameSheets()
For Each sh In ActiveWorkbook.Worksheets
sh.Name = sh.Range("T9").Value
Next
End Sub

___
таким макросом из ячейки Т9 начала переименовывать листы. Ошибка 400. Данные в этой ячейке оказались неуникальные. Переименование спотыкается на таких листах. А назвать лист надо всё равно по данным ячейки. Подскажите, пожалуйста, что дописать, чтобы к имени добавлялось, например, ххх(1), ххх(2) - в случае повторения данных в ячейке.
 
Код
Sub RenameSheets()
For i = 1 To ActiveWorkbook.Worksheets.Count
sh.Name = sh.Range("T9").Value & "_(" & i & ")""
Next i
End Sub

Поторопился. Виновные наказаны.
Изменено: k61 - 13 Мар 2018 11:34:10
 
IVA+,
1) Оформить код кнопкой <...>. См. правила форума.
2) Приложить файл пример.
3) Тема уже неоднократно обсуждалась: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=34591
 
Для имён листов есть ограничения.
 
k61,
ругается
"object required"
Если пытаюсь что-то изменить, то и вовсе
"run time error 424 object required"
Изменено: IVA+ - 14 Мар 2018 09:49:11 (подгрузка файла)
 
IVA+,  а Sh вас не смущает? Что это такое?
Код
Sheets(i).Name = Sheets(i).Range("T9").Value & "_(" & i & ")"""
 
V, теперь номер листа по порядку присваивается всем листам подряд, и тем, у которых данные в ячейке Т9 уникальны. то есть просто считает листы. Смысл в том, что листов будет несколько сотен, и цифра дубля (трибля)) )информирует о наличии оного, а сейчас - нет...
 
Код
Sub RenameSheets()
Set sh_n = CreateObject("Scripting.Dictionary")
For i = 1 To ActiveWorkbook.Worksheets.Count
n = Sheets(i).Range("T9")
   If sh_n.Exists(n) Then
      sh_n.Item(n) = sh_n.Item(n) + 1
   Else
      sh_n.Item(n) = 0
   End If
Sheets(i).Name = n & IIf(sh_n.Item(n), "_(" & sh_n.Item(n) & ")", "")
Next i
End Sub
 
V, she`s alive!!! ©
Всё работает! Спасибо, добрый человек! Дай Вам Бог двойняшек!))
Страницы: 1
Читают тему (гостей: 1)