powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / переименование именовонных ячеек
24 сообщений из 49, страница 2 из 2
переименование именовонных ячеек
    #35048953
Ex232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
листов 20 и I_145 пвторяется 20 раз, на текущий момент. раньше точное распознование ячейки в личсте было по настройке, сейчас от этого отошли и нужно уникально все переименовать. Вот я не могу понять как это сделать. Данные с ячеки - да, записать - да, добавит - да, удалить - да и прочую муть, а вот как получить имя именовааной ячейки - НЕТ.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35048956
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad1)2 именю одинаковых для книги быть не может. Только одно может быть для книги, второе уже автоматом ставится только для листа.Не верно, может.
Deggasad2)если есть имя Name1 , которое принадлежит определённому листу, т.е. Sh1!Name1 ? то написав на другом листе в ячеке =Name1 , вы получите лишь ошибку, ничего эксель не найдет, т.к. на имя принадлежащее листу нужно ссылаться с других листов только так =Sh1!Name1 А вот тут неверно. Ты забываешь что два листа МОГУТ содержать одинаковые имена. Но задать их через диалог Name->Define Экселя невозможно . Этот диалог будет всегда прятать дубли. Зато через VBA можно создать и потом использовать области-тезки. Вот сделай пустую книгу с одним листом и запусти макрос start_here
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub add_name(sheet_name As String)
    Worksheets(sheet_name).Names.Add Name:="aaa", RefersTo:=Worksheets(sheet_name).Range("A1")
    Worksheets(sheet_name).Range("B2") = "=aaa"
    Worksheets(sheet_name).Range("aaa") = sheet_name
End Sub

Sub start_here()
    add_name ActiveSheet.Name
    Worksheets.Add
    add_name ActiveSheet.Name
    Worksheets.Add
    ActiveSheet.Range("B2") = "=aaa"
End Sub
А теперь побегай по листам и посмотри на ячейки B2.
Потом можешь поиграться с макросом типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub a()
    Worksheets("Sheet1").Activate
    Debug.Print Application.Range("aaa")
    Worksheets("Sheet2").Activate
    Debug.Print Application.Range("aaa")
    Worksheets("Sheet3").Activate
    Debug.Print Application.Range("Sheet1!aaa")
    Debug.Print Worksheets("Sheet1").Range("aaa")
    Debug.Print Application.Range("aaa")
End Sub
Прогони его пошагово и поудивляйся :)

Deggasad3) Возможно я неправильно называю термин принадлежащее листу, просто я это сам придумал, т.к. правильных определений не знаю.Это правильный термин.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35048960
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex232Deggasad, а вот iCell.name возвращает реальное имя ячейки :) А вот мне нужно получить старое присвоенное ячейке имя. Я до этого сам допетрил. Не подходит.Тебе сколько раз повторять: Нельзя узнать имя присвоенное ячейке. Можно узнать куда имя показывает.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35048966
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 White Owl
Не подумайте, что я хочу поспорить, но ваш макрос всего лишь подтверждает мою правоту. Он создаёт 2 имени принадлежащих листу, таких одинаковых имён может быть столько же сколько листов. А вот имён принадлежащих всей книги с одинаковым именем может быть только ОДНО.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35049319
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlТебе сколько раз повторять: Нельзя узнать имя присвоенное ячейке. Можно узнать куда имя показывает.
Всё можно.... Например так: :-)
OldCellName = Range("A1").Name.Name
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35049390
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@Nik White OwlТебе сколько раз повторять: Нельзя узнать имя присвоенное ячейке. Можно узнать куда имя показывает.
Всё можно.... Например так: :-)
OldCellName = Range("A1").Name.Name

ГЫ :-)
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35049533
Ex232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, разобрался.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35050741
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL, а что это за фокус с "!" ? Почему, когда очищаешь ячейку С8, ячейка С10 сразу не обновляется ? Нужно зайти в неё и дать "ввод".
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35050794
sqrk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работать будет если имя есть в каждой ячейке. Если имени где-то может не быть надо бобработку ошибок делать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim n As Integer
    Dim old_name As String

    
    For Each sh In ThisWorkbook.Sheets
        n =  1 
        For Each cls In sh.Range("A1:A100")
                old_name = cls.Name.Name
                cls.Name.Name = sh.Name & "_name_" & Format(n, "000")
                n = n +  1 
        Next cls
        n =  0 
    Next sh

...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35050801
sqrk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
))

не сразу заметила второй лист форума. Молодец, что разобрался.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051097
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasadправильно я понял, что перед адресом нужно добавить ! (вскл зн) и стереть имя листаДа, именно так, и тогда имя будет привязано к листу, на котором находится вызывающая формула.

White OwlТы забываешь что два листа МОГУТ содержать одинаковые имена. Но задать их через диалог Name->Define Экселя невозможно .Это не совсем так, просто при создании имени через данный диалог надо эксплицитно указывать лист рядом с именем, например:
Лист1!ТЕСТ

@NikKL, а что это за фокус с "!" ? Почему, когда очищаешь ячейку С8, ячейка С10 сразу не обновляется ? Нужно зайти в неё и дать "ввод".Это одно из свойств именованых формул. Нельзя забывать о том, что в конечном счете именованный диапазон - это не что иное как именованая формула. Насчет пересчета, думаю, что у тебя по какой либо причине установлен ручной режим пересчета (может перед этим открыл файл с этой настройкой, а она задается первым файлом для всех последующих). У меня все считает в реальном времени.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051114
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, вычисления стоят "автоматически". Не хотело обновляться даже по Ф9 (Шифт Ф9)
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051118
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@Nik White OwlТебе сколько раз повторять: Нельзя узнать имя присвоенное ячейке. Можно узнать куда имя показывает.
Всё можно.... Например так: :-)
OldCellName = Range("A1").Name.Name

Классное решение! Есть правда один подводный камень - что если, по оплошности или преденамеренно, ячейке присвоено более одного имени?
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051143
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю, ничего страшного не произойдёт, оно так и останется болтаться...
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051147
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@NikНет, вычисления стоят "автоматически". Не хотело обновляться даже по Ф9 (Шифт Ф9)
Вот зараза! Ты прав - в 2003 версии все как ты говоришь, а в 2007 считает корректно.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051162
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@NikДумаю, ничего страшного не произойдёт, оно так и останется болтаться...
Да, но может быть переименовано не то имя (я так понял, что первенство определяется по алфавиту). Предположим две разных программы ссылаются на одну и ту же ячейку но под разными именами, эдак можно хорошее имя повредить, а плохое оставить. А при том размахе с каким используют имена у Ex232 это становиться вполне реальной возможностью.
В любом случае это не критика, а обычный процесс "дебаггинга" ;-)
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051425
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@Nik White OwlТебе сколько раз повторять: Нельзя узнать имя присвоенное ячейке. Можно узнать куда имя показывает.
Всё можно.... Например так: :-)
OldCellName = Range("A1").Name.NameЭкхм.... однако....
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35051480
Ex232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примерно так. Скрипт на фоксе, ка ни странно для вас :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
oExcel=CreateObject('Excel.Application')
oDoc = oExcel.Workbooks.Open("g:\XXX\20080108\XXXXX.xlt")
FOR nItem =   1  TO  odoc.Sheets.Count 
cSheet  = "L"+ALLTRIM(STR(nItem ))
 sh = odoc.Sheets(nItem)
 for n =   0  TO  1322 
  rng = "D"+ALLTRIM(STR(n))
  IF EMPTY(sh.Range(rng).NoteText)
   Loop
  endif
  obj_cell = sh.Range(rng).Name
  IF NOT ("L"$obj_cell.Name)
	 obj_cell.Name  =  SUBSTR(obj_cell.Name, 1 ,ATC("!",obj_cell.Name))+cSheet +SUBSTR(obj_cell.Name,ATC("!",obj_cell.Name)+ 1 )
  endif
  endfor
Endfor
oDoc.Save()
oExcel.Visible = .t.
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35059852
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deggasad и White Owl, так вы до конца разобрались с именами или нет... ? Хочу немного подлить масла в огонь, а то он, смотрю, стал тухнуть :-)
Посмотрите куда указывает имя на Листе 1 и куда указывает ТАКОЕ ЖЕ имя на других листах....
Как вы такое можете объяснить ? А главное, как вы такое можете повторить ?
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35060591
sqrk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я только одно видимое имя в книге нашла
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35060796
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sqrkя только одно видимое имя в книге нашла
Ещё раз:
@NikПосмотрите куда указывает имя на Листе 1 и куда указывает ТАКОЕ ЖЕ имя на других листах....
Нет, там 2 видимых имени, называются они одинаково, но ссылаются на разные диапазоны...

А вот ещё прикол: Почему тут имя видно только на Листе 1 ? А других листах вообще нет никаких имён :-))) Кто повторит этот фокус ? :-)
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35060826
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 @Nik
Вынужден Вас огорчить - именно это мы сдесь и обсуждали, т.е. имена принадлежащие отдельному листу и имена принадлежащие всей книге!
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35060833
@Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да не надо меня огорчать... я просто хотел подтвердить твою правоту этим примером :-)
...
Рейтинг: 0 / 0
переименование именовонных ячеек
    #35061699
sqrk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я вижу одно имя - aaa.
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / переименование именовонных ячеек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]