Страницы: 1
RSS
Найти ячейку по имени, Найти именную ячейку
 
Появилась необходимость переделать свою старую программу для подсчетов. Делал ее давно, больше 10 лет назад.
Файл сделан в формате 97-2004 (.xls).

В программе все листы защищены паролем, который постоянно обновляется при пересчете. Пароль записан на одном из листов книги в именной ячейке.
Защита идет при выполнении простого макроса, где значение пароля берется из ячейки PS1. Макрос выполняется и успешно работает на всех листах книги.
Код
Sub PS()
    Pass = Range("PS1")
    ActiveSheet.Protect (Pass)
End Sub


Проблема в том, что каким то образом я убрал имя ячейки из списка в менеджере имен и найти ее не могу. В VBA тоже ссылки на ячейку, кроме указанной выше, нет. Через поиск найти тоже не могу. Нужно найти где задается пароль и какой он, у меня в записях ничего не осталось.

Аксакалы, подскажите, пожалуйста, как найти эту именную ячейку? Все известные данные выше.
Задача не открыть и не снять пароль с листов, это я сделал. Нужно именно найти ячейку
 
можно посмотреть через диспетчер имен
 
Цитата
написал:
можно посмотреть через диспетчер имен
Нет. Там нет этого имени. Как то я его удалял оттуда, не помню как. Так я начинал искать
 
viajador, Если не сохранилось рабочих версий файлов, то задача становится из разряда: пойди туда, не знаю куда.  Ну как вариант, удалять с листа все что на нем  и понятно к чему относится, и то что осталось изучать. в одной из ячеек будет тот самый пароль.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
viajador, Если не сохранилось рабочих версий файлов, то задача становится из разряда: пойди туда, не знаю куда.  Ну как вариант, удалять с листа все что на нем  и понятно к чему относится, и то что осталось изучать. в одной из ячеек будет тот самый пароль.
В том то и дело, что файл рабочий. Он работает без проблем, просто нужно его сильно поменять и поменять пароль в том числе. Но пароль задан в той ячейке.
В файле больше 15 листов, поэтому имя может быть только глобальное на всю книгу.
Макрос вызывается и работает на любом активном листе. Но ссылка на ячейку с названием и абсолютной ссылки на него в VBA нет.
Изменено: viajador - 25.07.2022 13:24:12
 
viajador,
если тупо нужно найти ячейку по имени, то так?
Код
Sub aaa()
Range("Пароль").Select
End Sub


в VBA пароль только ставится или снимается тоже?
Изменено: evgeniygeo - 25.07.2022 13:39:29
 
Цитата
написал:
viajador,
в VBA пароль только ставится или снимает тоже?
И ставится и снимается через VBA.

Я думал о том, что может быть макросом каким то можно найти такую ячейку. Имя то есть такое
 
Цитата
viajador: Range("PS1")
это не имя, а адрес конкретной ячейки [ред. для Excel 2007 и новее]
Цитата
viajador: все листы защищены паролем, который постоянно обновляется при пересчете
посмотрите в коде, в какую ячейку "обновляется" пароль и делов-то
Изменено: Jack Famous - 25.07.2022 15:13:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
Цитата
viajador: Range("PS1")
это не имя, а адрес конкретной ячейки
Цитата
viajador: все листы защищены паролем, который постоянно обновляется при пересчете
посмотрите в коде, в какую ячейку "обновляется" пароль и делов-то
Это не может быть адресом. В листе столбцы заканчиваются на IV. До PS столбцы не доходят
 
viajador,
попробуйте создать данное имя в любом файле
 
Добрый день!
Запустите вот этот макрос у себя в книге:
Код
Sub ShowNames()
Dim xName As Name
For Each xName In Application.ActiveWorkbook.Names
    xName.Visible = True
Next
End Sub

и попробуйте поискать еще раз в диспетчере имен свою ячеку
 
Цитата
написал:
viajador,
попробуйте создать данное имя в любом файл
Вы гений!  :)  Спасибо огромное!  :D
Действительно, такое имя не создалось и меня перекинуло в ту ячейку, которая проходит у книги под этим именем. Оказалось на том листе, где я думал, но я бы ее никогда не нашел!
Теперь бы еще вспомнить как я это сделал :)) Чтобы можно было повторить при случае
 
Цитата
viajador написал:
Теперь бы еще вспомнить как я это сделал )
обратите внимание на №11. Если имя есть , оно работает, то значит просто оно скрыто.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Добрый день!
Запустите вот этот макрос у себя в книге:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6      Sub   ShowNames()    Dim   xName   As   Name    For   Each   xName   In   Application.ActiveWorkbook.Names          xName.Visible =   True    Next    End   Sub   
 
и попробуйте поискать еще раз в диспетчере имен свою ячеку
Спасибо! Да, этот вариант тоже сработал. Появилось имя в списке, все нашел!
 
Цитата
написал:
Цитата
viajador написал:
Теперь бы еще вспомнить как я это сделал )
обратите внимание на №11. Если имя есть , оно работает, то значит просто оно скрыто.
Да, так тоже нашел. Спасибо большое всем за помощь!  
 
Цитата
viajador: Это не может быть адресом. В листе столбцы заканчиваются на IV. До PS столбцы не доходят
слишком самоуверенно для вашего уровня знания объектной модели Excel. Если буквы PS латинские то это однозначно адрес конкретной ячейки [ред. для Excel 2007 и новее] — в противном случае, это может быть именем именованного диапазона.
Изменено: Jack Famous - 25.07.2022 15:14:05
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
Это не может быть адресом. В листе столбцы заканчиваются на IV. До PS столбцы не доходят
если быть точнее - это не может быть адресом ячейки в 2003 Excel(с расширением .xls). Однако в более новых версиях PS это все же конкретный столбец и если Вы пересохраните файл в одну из этих версий Вас может ждать неприятный сюрприз с таким именем - оно будет автоматом переименовано(к нему скорее всего будет добавлен символ нижнего подчеркивания).
Изменено: Дмитрий(The_Prist) Щербаков - 25.07.2022 14:56:22
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Jack Famous, Если буквы PS латинские то это однозначно НЕ адрес конкретной ячейки. См.формат файла в #1.
 
Дмитрий(The_Prist) Щербаков, RAN, я с такими динозаврами не работаю уже давно (не открываю)  :)
Вы правы - не учёл старый формат файла. Спасибо — поправил

Цитата
RAN: Если буквы PS латинские то это однозначно НЕ адрес конкретной ячейки
утверждение истинно только для древнего формата файла и зачем в таком случае говорить про латинские буквы?…
Изменено: Jack Famous - 25.07.2022 15:24:40
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх