Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2013, 15:23   #1
ViaVia
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию Не назначает имена диапозонам

Добрый день, в общей таблице нужно найти последовательно ячейки по части текста в первой колонке и создать диапазоны (как-то их "запомнить", потом каждый из них обрабатывать..), я решила их "запоминать" присвоив имена, но имена почему-то не присваиваются ( что не так? помогите, плз

Код:
irow = Range("A3").SpecialCells(xlLastCell).Row
icolumn = Range("A3").SpecialCells(xlLastCell).Column

K = 1

Set D = Columns(1).Find(what:="Marker for search", LookIn:=xlValues, searchdirection:=xlNext, lookat:=xlPart)
    If Not D Is Nothing Then
        FirstI = D.Address    'адрес для цикла
        Set FRange = D   'первая ячейка диапазона
        
            Do
                Set D = Columns(1).Find(what:="Marker for search", after:=D, LookIn:=xlValues, searchdirection:=xlNext, lookat:=xlPart)
                    If Not D Is Nothing Then
                        FollowI = D.Address     'адрес для цикла
                        Set EndRange = D     'последняя ячейка диапазона
                                                
                        If FollowI = FirstI Then          ' последний диапазон
                            Set PodRange = Range(FRange, Cells(irow, icolumn))
                            Names.Add Name:="part" & K, RefersTo:="=PodRange.Address", Visible:=True
                        
                        Else
                            Set PodRange = Range(FRange, EndRange.Offset(-1, icolumn - 1))
                            Names.Add Name:="part" & K, RefersTo:="=PodRange.Address", Visible:=True
                            K = K + 1
                            Set FRange = EndRange
                        End If
                    End If
            Loop While FollowI <> FirstI
    End If
G = K
K = 1
For f = 1 To G     'проверка имен диапазонов
NameM = "part" & K
Range(Names(NameM)).Select
K = K + 1
Next
если я вручную присваиваю имя, имя видно и находит, а через код - нет ((

Последний раз редактировалось ViaVia; 29.04.2013 в 19:48.
ViaVia вне форума Ответить с цитированием
Старый 29.04.2013, 15:35   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Код:
Names.Add Name:="part" & K, RefersTo:="=PodRange.Address", Visible:=True
попробуйте сделать так:
Код:
Names.Add Name:="part" & K, RefersTo:=PodRange.Address, Visible:=True
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 29.04.2013, 15:46   #3
ViaVia
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию

не хочет (, не присваивает
ViaVia вне форума Ответить с цитированием
Старый 29.04.2013, 20:19   #4
ViaVia
 
Регистрация: 29.04.2013
Сообщений: 5
Печаль

может быть, диапазоны можно задать не с помощью имён, а другим способом?
задать диапазоны с использованием номера не получается, выдает ошибку
Код:
set PodRange & K = Range(FRange, Cells(irow, icolumn))
может быть как-то с помощью массивов?
есть идеи?
заранее очень благодарна за ответы, я просто полный "чайник"
как массив написать, не смогла найти, а как из него потом вытаскивать диапазоны для обработки, нет представления совершенно
ViaVia вне форума Ответить с цитированием
Старый 30.04.2013, 08:09   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

не посмотрел хэлп по функции. правильно вот так:

Код:
Names.Add Name:="part" & K, RefersTo:= "=" & PodRange.Address, Visible:=True
а править сам цикл без данных не очень получится...
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 30.04.2013 в 08:13.
DiemonStar вне форума Ответить с цитированием
Старый 30.04.2013, 10:26   #6
ViaVia
 
Регистрация: 29.04.2013
Сообщений: 5
По умолчанию

DiemonStar, огромное спасибо, все получилось.

буду стараться разбираться с хелпом, пока честно говоря, не очень получается.., вообщем, есть над чем работать
ViaVia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одинаковые имена Ramirag C# (си шарп) 4 29.08.2011 09:09
Имена ячеек Foxx Microsoft Office Excel 23 27.04.2010 10:41
Составные имена KorDum Общие вопросы C/C++ 6 07.12.2009 20:41
имена файлов Tirendus БД в Delphi 1 01.04.2009 20:49
Имена хостов :( InseR Работа с сетью в Delphi 1 04.07.2007 12:15