|
|
|
Forum 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 занимаюсь вынужденно и не много разбираюсь в макросах Просто у всех есть мнение что я ну просто обязан все знать и уметь.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 14.12.2007 16:53
Сообщ.: 100,
Visits: 1 707
|
|
|
|
|
|
Forum Member
      
участник
Last Login: 20.07.2007 21:46
Сообщ.: 26,
Visits: 62
|
|
да нет это совсем не то
как я понимаю здесь у меня 2-х мерный массив и выбирая его значение я получаю адрес нужного мне столбца в другой книге. из столбца берется то что надо
единственно что книга эта закрыта
как обратиться к ней не открывая ее тоже не знаю.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 21.03.2008 5:12
Сообщ.: 386,
Visits: 4 197
|
|
|
|
|
|
Forum Member
      
участник
Last Login: 20.07.2007 21:46
Сообщ.: 26,
Visits: 62
|
|
ситуация такая в рабочий лист надо вставить данные из другой (лучше бы закрытой книги)
Другая книга это просто справочник
в справочнике листы на листах колонки
в рабочей книге есть ячейки где я выбираю номер листа и номер столбца справочника
ну например в А1 номер листа в В1 номер столбца иэто будем считать группа1
таких групп на рабочем листе 6
мне надо чтобы при запуске макроса масимально быстро заполнить необходимые ячейки
для каждой группы это несколько ячеек в нужном столбце
это понятно
Кто знает как помогите пожалуйста
|
|
|
|
|
Forum Guru
      
участник
Last Login: 13.10.2008 16:44
Сообщ.: 55,
Visits: 409
|
|
| а впр(), индекс(), смещ() точно не подойдут???
|
|
|
|
|
новичок
      
участник
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
|
|
|
|
|
Forum 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 ПУСТО то эта группа не обрабатывается
|
|
|
|
| | |