Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - как пакетно назначить имена для клеток excel?

Ответить
Настройки темы
2010 - как пакетно назначить имена для клеток excel?

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Мне нужно определенному диапазону клеток размером 50 столбцов на 2000 строк присвоить произвольные имена. Как это можно сделать? Может кто скриптом VBA подсобит?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 00:18, 21-01-2012

 

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Цитата Iska:
Я рассчитывал именно на то, что сие будет однократным действием. »
не. ну смотрите. Сделаю я один раз. А эксель мой еще не финишный. Все время модифицирую, и вот попробую задать новые имена и он мне как наворотит, что я фик разгребусь .
Цитата Iska:
хотя я не вижу в этом требовании никакой необходимости »
необходимость лишь в моей специфики рабочего файла эксель, не более.
Цитата Iska:
Опишите условия, при которых сие происходит. »
видимо сам виноват. тестировал какие то скрипты скачанные из нета, и в результате офис навернулся. Удалить смог только какой то спец утилитой. Зато теперь поставить не могу. Сменю винду, опробую приведенный вами скрипт. Спасибо.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 13:45, 27-01-2012 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Pozia:
Сменю винду, опробую приведенный вами скрипт. »
Сочувствую. Ждём-с.

Отправлено: 16:36, 27-01-2012 | #32


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, По поводу глюков в работе скрипта - все Ок после смены винды.
Цитата Iska:
пробуйте: »
то же все классно.
Хотелось бы еще попросить Вас (простите за наглость) подкорректировать скрипт из вашего поста 27, чтоб он имена не удалял у ранее названных клеток. Простое присвоение имен клеткам как я сейчас понимаю мне тоже нужно. У меня есть еще связь между моим главным расчетным файлом эксель и файлами эксель "посредниками" между расчетным файлом эксель и SolidWorks, где тоже нужна твердая связь. И вот здесь пакетное именование клеток очень было бы кстати, чтоб потом просто вешать связи между файлами эксель.

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

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 21:36, 29-01-2012 | #33


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Pozia:
Хотелось бы еще попросить Вас подкорректировать скрипт из вашего поста 27, чтоб он имена не удалял у ранее названных клеток. »
Пробуйте (код для модуля рабочей книги):
читать дальше »
Код: Выделить весь код
Option Explicit

Sub SetNames()
    Dim objWorksheet As Worksheet
    Dim objCell As Range
    
    Dim strNewName As String
    Dim i As Long
    
    
    Set objWorksheet = Selection.Worksheet
    
    If objWorksheet.Type = xlWorksheet Then
        i = objWorksheet.Names.Count
            
        For Each objCell In Selection
            If Not RangeHasName(objCell) Then
                Do
                    strNewName = "_" & CStr(i)
                    
                    i = i + 1
                    
                    If Not NameExists(objWorksheet, strNewName) Then
                        Exit Do
                    End If
                Loop
                
                objWorksheet.Names.Add strNewName, "=" & objCell.Address(, , xlR1C1, True)
            End If
        Next
    End If
    
    Set objWorksheet = Nothing
End Sub

Function NameExists(objWorksheet As Excel.Worksheet, strName As String) As Boolean
   On Error Resume Next
   
   NameExists = Len(objWorksheet.Names(strName).Name) <> 0
End Function

Function RangeHasName(objRange As Excel.Range) As Boolean
   On Error Resume Next
   
   RangeHasName = Len(objRange.Name.Name) <> 0
End Function


Цитата Pozia:
PS Не подскажете ли, как в ворд на скрипт задать горячую клавишу. »
Не подскажу, по той простой причине, что у Вас Office 2010, а у меня Office 2003. Но можете попробовать самостоятельно согласно статье: Настройка сочетаний клавиш - Word - Office.com, выбрав в поле «Категории» категорию «Макросы», а в поле «Макросы» — Ваш макрос.

Цитата Pozia:
в ворд приходится хитрить - включать запись макроса, дам задавать сочетание клавиш, а потом под записанный макрос подсовывать свой. »
Сие излишне.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:35, 03-02-2012 | #34


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, спасибо, все отлично работает. повесил за эти дни около 3000 связей на имена клеток, красота.... )

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 21:58, 03-02-2012 | #35


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Рад стараться ! Тем паче, что и я кое-что узнал для себя нового:
Цитата Pozia:
Если из эксель скопировать клетку и вставить ее через специальную вставку в ворд - получится связь. Изменив значение клетки в эксель - меняется значение в ворд. Так вот если клетку в эксель куда то перенести - связь теряется. Если клетке эксель предварительно дать имя, и затем сделать связь, то так связь ворд эксель не потеряется, так как ворд будет ссылаться не на координату а на имя клетки, которое является уникальным для листа. »

Отправлено: 10:28, 04-02-2012 | #36


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, очень нужна ваша неотложная помощь. Имеется большой файл экселя. Навесил кучу связей вашим скриптом. И ща заметил, что на один из листов экселя связи ворда ссылаются не на имена ячеек, а на координаты их. Почему то скрипт упорно не делает связи на имена ячеек именно на одном листе. Прикрепляю этот лист. Помогите пожалуйста разобраться.

Iska, методом тыка установил, что виной является буква "C" первая в названии листа. Почему так?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Последний раз редактировалось Pozia, 15-06-2012 в 20:18.


Отправлено: 23:58, 01-03-2012 | #37


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Pozia:
Iska, методом тыка установил, что виной является буква "C" первая в названии листа. Почему так? »
Не подтверждаю. Как Вы сделали такой вывод?

Цитата Pozia:
Прикрепляю этот лист. »
Мне сложно что-либо сказать по одному листу.

Отправлено: 02:19, 02-03-2012 | #38


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, это косяк не скрипта, а как минимум офиса 2010. создал только что новый документ, добавил к имени любого листа английскую букву С, задал имя для любой ячейки на этом листе и связь в ворд повесилась на координату, а не на имя. убираю букву С с названия, и связь вешается успешно

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 09:16, 02-03-2012 | #39


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Pozia, воспроизводится ли сие поведение «вручную»?

Отправлено: 10:45, 02-03-2012 | #40



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - как пакетно назначить имена для клеток excel?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как назначить разделителем для FOR конец строки? NordWest Скриптовые языки администрирования Windows 2 13-11-2011 21:12
Разное - Как назначить программу для открытия файлов одного типа fonarik Microsoft Windows 2000/XP 1 09-10-2010 11:08
Установка - Кардридер. Установка с нуля. Как назначить C: для системы при включеном кардридере?? yurfed Microsoft Windows 2000/XP 2 17-09-2008 11:10
назначить действие для файлов в firefox graverman Программное обеспечение Linux и FreeBSD 1 26-11-2007 17:00
k3b: Назначить устройство для записи? SVlads Общий по FreeBSD 27 28-03-2006 12:39




 
Переход