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

Компьютерный форум 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 | Цитировать


okshef, Iska, ничего не вышло. сделал буквально, как сказал okshef, то есть вот так:

Код: Выделить весь код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then MsgBox "Âûáðàíî áîëåå 1 ÿ÷åéêè": Exit Sub
Option Explicit
Sub SetNames2()
    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
End Function
и в ответ получил при запуске Ambiguous name detected: Worksheet_SelectionChange

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


Отправлено: 11:01, 24-12-2012 | #51



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

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


Аватара для Pozia

Ветеран


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

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


Подскажите пожалуйста еще как подсчитать количество именованных клеток на листе. Пробовал так: СЧЁТЕСЛИ(A1:AF828;"_*") но не выходит. Вот
здесь, пункт D есть какой то кусок кода для этого, но не пойму как его применить. Просто так не запускается

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


Отправлено: 11:59, 24-12-2012 | #52


Ветеран


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

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


Цитата Pozia:
как подсчитать количество именованных клеток на листе. »
Количество имён: «ActiveSheet.Names.Count» и «ActiveWorkbook.Names.Count». Понятие «клетки» в Excel не используется. Назначить имя можно только диапазону (пусть даже и состоящему из одной ячейки, потому что ячейка — это тоже диапазон).

Цитата Pozia:
Вот здесь, пункт D есть какой то кусок кода для этого, но не пойму как его применить. »
Всё там верно. Вставить код в модуль в процедуру или функцию и запустить её на исполнение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:03, 24-12-2012 | #53


Аватара для Pozia

Ветеран


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

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


Iska, я совсем чайник в этом (. Могли бы вы привести весь код как надо?

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


Отправлено: 13:28, 24-12-2012 | #54


Аватара для Pozia

Ветеран


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

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


Iska, по поводу количества мне тут помогли. Поможете на счет поста 42 ?

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:48, 24-12-2012 | #55


Ветеран


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

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


Постараюсь.

Отправлено: 17:50, 24-12-2012 | #56


Аватара для Pozia

Ветеран


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

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


Iska, заметил, что код в посте 34 начинает именовать ячейки, начиная с последнего максимального имени. Но если я удалил ранее созданные имена ячеек, то все равно имя присваивается с конца. То есть имею имена _1_, _2_, _10_, _11_, _12_, и в этом случае при запуске макроса присваивается следующее имя имя _13_ а не _3_. Можно ли это учесть? Спасибо

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


Отправлено: 21:26, 17-01-2013 | #57


Ветеран


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

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


Pozia, время нужно выделить потребное. Пока его нет. Я помню и про предыдущее.

Отправлено: 03:58, 18-01-2013 | #58


Аватара для Pozia

Ветеран


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

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


Iska, доброго вечера. Может у Вас появилась минутка для помощи, случайно?

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


Отправлено: 21:04, 03-09-2013 | #59


Ветеран


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

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


Pozia, надо вспоминать .

Отправлено: 16:58, 04-09-2013 | #60



Компьютерный форум 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




 
Переход