данные из другой книги
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



данные из другой книги Expand / Collapse
Автор
Сообщение
26.05.2007 22:28
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 20.07.2007 21:46
Сообщ.: 26, Visits: 62
Здравствуйте!
у меня такая задача
на рабочем листе в А1 номер листа, в В1 номер столбца другой (закрытой книги) листов в этой книге до 5
столбцов до 40
В С1:С5 надо занести даннные В5:В9 (1 группа данных)
Закрытая книга UVPS.xls лежит всегда C:\
Это справочник. Из него надо взять данные в рабочий лист.
групп данных на листе 16
Они могут совпадать а могут не совпадать
Подскажите плиз! как это сделать. здесь очень важна скорость выборки
сам я не программист а сис админ и EXCEL занимаюсь вынужденно и не много разбираюсь в макросах Просто у всех есть мнение что я ну просто обязан все знать и уметь.

Сообщ. #913658
26.05.2007 23:33
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 14.12.2007 16:53
Сообщ.: 100, Visits: 1 707
не знаю поможет или нет, почитайте тут http://forum.sources.ru/index.php?showtopic=161383
Сообщ. #913659
27.05.2007 20:48
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 20.07.2007 21:46
Сообщ.: 26, Visits: 62
да нет это совсем не то
как я понимаю здесь у меня 2-х мерный массив и выбирая его значение я получаю адрес нужного мне столбца в другой книге. из столбца берется то что надо
единственно что книга эта закрыта
как обратиться к ней не открывая ее тоже не знаю.
Сообщ. #913668
28.05.2007 6:58
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 21.03.2008 5:12
Сообщ.: 386, Visits: 4 197
про массив ничего не понял.
хорошая ссылка, может вот это еще: http://relib.com/forums/Topic875652-11-1.aspx
Сообщ. #913672
05.06.2007 19:57
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 20.07.2007 21:46
Сообщ.: 26, Visits: 62
ситуация такая в рабочий лист надо вставить данные из другой (лучше бы закрытой книги)
Другая книга это просто справочник
в справочнике листы на листах колонки
в рабочей книге есть ячейки где я выбираю номер листа и номер столбца справочника
ну например в А1 номер листа в В1 номер столбца иэто будем считать группа1
таких групп на рабочем листе 6
мне надо чтобы при запуске макроса масимально быстро заполнить необходимые ячейки
для каждой группы это несколько ячеек в нужном столбце
это понятно
Кто знает как помогите пожалуйста

Сообщ. #913835
06.06.2007 5:43
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 13.10.2008 16:44
Сообщ.: 55, Visits: 409
а впр(), индекс(), смещ() точно не подойдут???
Сообщ. #913837
06.06.2007 11:02
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 25.03.2008 12:02
Сообщ.: 5, Visits: 413
Попробуйте так. Писал без проверки, но должно работать.

Option Explicit
Sub Макрос1()
Dim Gruppy As Integer
Dim List As Integer
Dim Stolbec As Integer
Dim i As Integer
Dim k As Integer
Dim Name As String
Dim Name2 As String
' определяем имя нашей книги. если оно известно заранее, то можно вбить сразу и навсегда
Name = ActiveWorkbook.Name
' ищем сколько всего групп. в пределах 100 строк d столбе А должен быть только номер листа для группы
' А1 номер листа В1 номер столбца - группа 1
' Аn номер листа Вn номер столбца - группа n
' если An = пусто , то групп больше нет
For i = 1 To 100
If Cells(i, 1).Value <> "" Then
Gruppy = i
End If
Next i
' как работать с закрытой книгой я не знаю, поэтому открываем удаленную книгу только для чтения
Name2 = "Архив.xls"
Workbooks.Open "c:\temp\" & Name2, ReadOnly:=True
' передаем фокус на нашу книгу
Workbooks(Name).Activate
For i = 1 To Gruppy
List = Cells(i, 1)
Stolbec = Cells(i, 2)
k = 1
' перебрасываем данные, пока они есть в столбце другой книги
While Workbooks(Name2).Sheets(List).Cells(k, i).Value <> ""
' даные из столбца другой книги пишем к себе в столбец
' для 1 группы = столбец №3 (С), для второй = №4 (D)...
Cells(k, i + 2).Value = Workbooks(Name2).Sheets(List).Cells(k, Stolbec).Value
k = k + 1
Wend
Next i
' закрываем другую книгу
Workbooks(Name2).Close
End Sub
Сообщ. #913843
06.06.2007 21:34
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 20.07.2007 21:46
Сообщ.: 26, Visits: 62
большое спасибо но это как мне кажется не совсем то
У меня получается такой алгоритм
Получаем имя активной книги это и есть наша рабочая книга
Открываем Книгу2
Выбираем лист книги2 согласно А1(взято для примера) рабочей книги
Выбираем столбец книги2 согласно В1 рабочей книги
дальше у меня проблемы
в 1 ячейках столбцов книги лежит номер столбца например столбец С в ячеекеС1 лежит 4 итд
и мне надо фактически получить значение столбца типа 100 это WA столбец
мне надо из столбца взять только часть ячеек типа WA4:WA9 скопировать их значение и занести в С10:С15 рабочей книги
на этом обработка 1 группы заканчивается
далее обрабатываем 2 группу и так 6 групп на листе
после чего книгу 2 закрываем
сложность еще в том что номера столбцов не сквозные т.е. порядок типа такой
13,17,27,49,56,68,170 номера идут в возрастающей последовательности т.е 170 это столбец G
и еще ксли значение или номера листа или номера столбца книги2 ПУСТО то эта группа не обрабатывается

Сообщ. #913866
07.06.2007 9:35