|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - как пакетно назначить имена для клеток excel? |
|
2010 - как пакетно назначить имена для клеток excel?
|
Ветеран Сообщения: 2756 |
Мне нужно определенному диапазону клеток размером 50 столбцов на 2000 строк присвоить произвольные имена. Как это можно сделать? Может кто скриптом VBA подсобит?
|
|
------- Отправлено: 00:18, 21-01-2012 |
Модератор Сообщения: 16848
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 01:03, 21-01-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Если из эксель скопировать клетку и вставить ее через специальную вставку в ворд - получится связь. Изменив значение клетки в эксель - меняется значение в ворд. Так вот если клетку в эксель куда то перенести - связь теряется. Если клетке эксель предварительно дать имя, и затем сделать связь, то так связь ворд эксель не потеряется, так как ворд будет ссылаться не на координату а на имя клетки, которое является уникальным для листа.
Далее. У меня есть файл эксель с большими расчетами, состоящий примерно из 2000 строк и 50 столбцов. Вот для этого диапазона клеток мне нужно задать каждой клетке произвольное имя - допустим в формате "_******", где * - цифра произвольная. Вот это мне и нужно сделать. В нете нашел вот такой скрипт:
который позволяет быстро скопировать клетку эксель в ворд создав связь. Работает так - выделяем клетку в ворд, выделяем в эксель, запускаем скрипт - ссылка готова. Но он почему то не работает. Выскакивает ошибка - Run-time error '429': ActiveX component can't create object. Вот если бы его починить, и дописать возможность автоматического присваивания произвольного имени клетке эксель при создании связи ворд эксель - это было бы самым шикарным вариантом... Такое можно осуществить? |
------- Отправлено: 01:17, 21-01-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Попробуйте убрать привязку к конкретной версии и обращаться по VersionIndependentProgID:
либо указать ProgID, соответствующий Вашей версии Microsoft Office. P.S. У меня не получилось вставить связь, когда ячейке Excel присвоено имя (Microsoft Office 2003). |
Отправлено: 07:58, 21-01-2012 | #4 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
||
------- Отправлено: 11:51, 21-01-2012 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Pozia, как я уже писал:
Цитата Iska:
|
|
Отправлено: 21:08, 21-01-2012 | #6 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 00:27, 22-01-2012 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Pozia:
Цитата:
Pozia, попробуйте так: Option Explicit Sub CopyFromExcel() Dim objExcel As Excel.Application Dim strAddress As String Dim strNewName As String Dim i As Long Set objExcel = GetObject(, "Excel.Application") With objExcel.Selection If .Worksheet.Type = xlWorksheet Then i = .Worksheet.Names.Count + 1 Do strNewName = "_" & CStr(i) If Not NameExists(.Worksheet, strNewName) Then Exit Do Else i = i + 1 End If Loop .Worksheet.Names.Add strNewName, "=" & .Address(, , xlR1C1, True) .Copy Selection.PasteSpecial , True, , , wdPasteText .Application.CutCopyMode = False End If End With Set objExcel = 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 |
||
Отправлено: 00:58, 23-01-2012 | #8 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Iska, Спасибо. Буду пробовать днем. А что значит
Цитата Iska:
|
|
------- Отправлено: 07:52, 23-01-2012 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:12, 23-01-2012 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|