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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 11:57   #1
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию Вместительность Array

Сколько может в себе местить Array???

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

Может есть какието соображения???
sasha_prof вне форума Ответить с цитированием
Старый 27.04.2010, 12:26   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Есть соображение, что активировать книги не надо. Обращайтесь к ним напрямую без активации:

Код:
Set rFndRng = Workbooks("Книга1.xls").Sheets("Лист1").Range("A:A").Find(Cells(li,1),,xlValues,xlWhole)
Cells(li,1) - участвует в цикле перебора ячеек активной книги, для поиска и в неактивной "Книга1.xls".
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 27.04.2010, 12:30   #3
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Есть соображение, что активировать книги не надо. Обращайтесь к ним напрямую без активации:

Код:
Set rFndRng = Workbooks("Книга1.xls").Sheets("Лист1").Range("A:A").Find(Cells(li,1),,xlValues,xlWhole)
Cells(li,1) - участвует в цикле перебора ячеек активной книги, для поиска и в неактивной "Книга1.xls".
А на сколько это будет эфективней???

Не понимаю вот эту часть
Код:
,,xlValues,xlWhole)
sasha_prof вне форума Ответить с цитированием
Старый 27.04.2010, 13:06   #4
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Есть Книга1 и Книга2.

Нужно с Книга2 в Книга1 подтянуть инфо по совпадающему номеру.

Книга1 и Книга2 тестовые, такак как боевые местят до 20мб обьема.

Как это лучше автоматизировать???
Вложения
Тип файла: rar тест.rar (11.4 Кб, 4 просмотров)
sasha_prof вне форума Ответить с цитированием
Старый 27.04.2010, 13:17   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Я бы создал массив из значений столбцов "A" и "B" книги "Книга2.xls", затем организовал цикл поиска по 1-му столбцу книги "Книга1.xls" для каждого элемента 1-й размерности массива. В случае совпадения - вставка в столбец "B" найденной строки элемента второй размерности.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.04.2010, 13:21   #6
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Я бы создал массив из значений столбцов "A" и "B" книги "Книга2.xls", затем организовал цикл поиска по 1-му столбцу книги "Книга1.xls" для каждого элемента 1-й размерности массива. В случае совпадения - вставка в столбец "B" найденной строки элемента второй размерности.
Массив же не безграничен???

"Книга2.xls" может местить более 10тыс строк которые нужно запомнить.
А в Array это не поместится((((
sasha_prof вне форума Ответить с цитированием
Старый 27.04.2010, 13:24   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
А в Array это не поместится
Вы уверены? Попробуйте. Думаю, что у Вас все получится.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.04.2010, 13:29   #8
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Вы уверены? Попробуйте. Думаю, что у Вас все получится.
Вот таким образом влазит около 500

sss = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

Может есть возможность обьявить от и до????
sasha_prof вне форума Ответить с цитированием
Старый 27.04.2010, 16:03   #9
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Помогите плиз.
Не могу вот так присвоить:

ostzapov = Worksheets("База").Cells(Rows.Count , 45).End(xlUp).Row
Dim ZeroArray(2 To ostzapov)
sasha_prof вне форума Ответить с цитированием
Старый 27.04.2010, 16:21   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
А в Array это не поместится(((
Странно, но мой эксель понимает сколь угодно большие массивы...

Код:
Sub test()
    arr = Cells.Value
    MsgBox "Размеры массива: " & UBound(arr, 1) & " на " & UBound(arr, 2)
End Sub
Цитата:
Не могу вот так присвоить:
А если так попробовать:
Код:
Sub test()
    With Worksheets("База")
        ZeroArray = .Range(.[a2], .Cells(.Rows.Count, 45).End(xlUp))
    End With
    MsgBox "Размеры массива: " & UBound(ZeroArray, 1) & " на " & UBound(ZeroArray, 2)
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TImage Array? Vigilante Компоненты Delphi 18 03.02.2010 10:40
Array CrystaLize Паскаль, Turbo Pascal, PascalABC.NET 7 29.09.2009 21:33
Array Devikss Помощь студентам 4 19.06.2008 22:45
Array BETONOMESHALKA Общие вопросы Delphi 2 24.11.2007 22:49
Array или не array Димарик Общие вопросы Delphi 4 18.06.2007 15:16