Доброго времени суток! Помогите, пожалуйста, подкорректировать макрос. Работая в рабочем файле, требуется извлечь с закрытой книги с двух листов данные с одного листа с ячеек A1:B1:C1 А с листа 2 A:1 подробный пример в файле Пока, получается, извлечь с листа 1 одну позицию. Помогите, пожалуйста, все до кучи собрать
Доброго времени суток! Помогите, пожалуйста, подкорректировать макрос. Работая в рабочем файле, требуется извлечь с закрытой книги с двух листов данные с одного листа с ячеек A1:B1:C1 А с листа 2 A:1 подробный пример в файле Пока, получается, извлечь с листа 1 одну позицию. Помогите, пожалуйста, все до кучи собратьdx
До какой кучи, там одна формула в ячейку прописывается) Вы бы в файликах чуть больше цветов показали, а то на 3х ячейках до кучи не собирается.
До какой кучи, там одна формула в ячейку прописывается) Вы бы в файликах чуть больше цветов показали, а то на 3х ячейках до кучи не собирается.wild_pig
Сообщение отредактировал wild_pig - Пятница, 06.12.2013, 01:15
Тот кто не понял задачи пишу, скачиваете файл пример извлекаете rar. содержит два файла открываете файл под названием (Рабочий файл) нажимаете кнопку извлечь данные ищите ту же папку которую извлекли открываете наводите курсор на файл (Книга для извлечения) кликаете по нему в ячейке A:1 появляется слово (белое). Все остальное расписал в первом письме
Тот кто не понял задачи пишу, скачиваете файл пример извлекаете rar. содержит два файла открываете файл под названием (Рабочий файл) нажимаете кнопку извлечь данные ищите ту же папку которую извлекли открываете наводите курсор на файл (Книга для извлечения) кликаете по нему в ячейке A:1 появляется слово (белое). Все остальное расписал в первом письмеdx
Без формул и ссылок (не люблю когда в книгах ссылки на другие книги) Назначь кнопке макрос TestGetValue2
[vba]
Код
Private Function GetValue(path, File, sheet, ref) Dim arg As String If Right(path, 1) <> "\" Then path = path & "\" If Dir(path & File) = "" Then GetValue = "Файл не найден" Exit Function End If arg = "'" & path & "[" & File & "]" & sheet & "'!" & _ Range(ref).Range("A1").Address(, , xlR1C1) GetValue = ExecuteExcel4Macro(arg) End Function
Sub TestGetValue2() Dim re, F Dim File As String Set re = Workbooks.Application.FileDialog(1) With re .Filters.Clear .AllowMultiSelect = False If .Show = -1 Then p = .InitialFileName F = Replace(.SelectedItems(1), p, "") End If End With s = "Лист1" Application.ScreenUpdating = False For c = 1 To 3 a = Cells(1, c).Address Cells(1, c) = GetValue(p, F, s, a) Next c Application.ScreenUpdating = True End Sub
[/vba]
Без формул и ссылок (не люблю когда в книгах ссылки на другие книги) Назначь кнопке макрос TestGetValue2
[vba]
Код
Private Function GetValue(path, File, sheet, ref) Dim arg As String If Right(path, 1) <> "\" Then path = path & "\" If Dir(path & File) = "" Then GetValue = "Файл не найден" Exit Function End If arg = "'" & path & "[" & File & "]" & sheet & "'!" & _ Range(ref).Range("A1").Address(, , xlR1C1) GetValue = ExecuteExcel4Macro(arg) End Function
Sub TestGetValue2() Dim re, F Dim File As String Set re = Workbooks.Application.FileDialog(1) With re .Filters.Clear .AllowMultiSelect = False If .Show = -1 Then p = .InitialFileName F = Replace(.SelectedItems(1), p, "") End If End With s = "Лист1" Application.ScreenUpdating = False For c = 1 To 3 a = Cells(1, c).Address Cells(1, c) = GetValue(p, F, s, a) Next c Application.ScreenUpdating = True End Sub
alex77755, Все работает за исключением одного вы пропустили в (Книге для извлечения) на листе 2 в ячейке А1 данные которое надо было тоже извлечь. И хотелось бы какое- то описание макроса. Так как это всего лишь является примером. Но в реале мне надо будет извлекать данные с закрытой книги с разных ячеек и с разных листов в рабочий файл в разные ячейки.
alex77755, Все работает за исключением одного вы пропустили в (Книге для извлечения) на листе 2 в ячейке А1 данные которое надо было тоже извлечь. И хотелось бы какое- то описание макроса. Так как это всего лишь является примером. Но в реале мне надо будет извлекать данные с закрытой книги с разных ячеек и с разных листов в рабочий файл в разные ячейки.dx
Функция GetValue имеет четыре аргумента: ¦ path – путь к закрытому файлу (например, "d:\files"); ¦ file – название рабочей книги (например, "budget.xls"); ¦ sheet – название рабочего листа (например, "Лист1"); ¦ ref – ссылка на ячейку (например, "C4"). Формируй аргументы в своей процедуре и передавай функции
Функция GetValue имеет четыре аргумента: ¦ path – путь к закрытому файлу (например, "d:\files"); ¦ file – название рабочей книги (например, "budget.xls"); ¦ sheet – название рабочего листа (например, "Лист1"); ¦ ref – ссылка на ячейку (например, "C4"). Формируй аргументы в своей процедуре и передавай функцииalex77755
alex77755, Извините изначально, наверное, сформулировал вопрос неправильно. Тоесть если по простому, мне надо чтоб я мог с закрытой книги извлечь данные, например с ячейки D4, D5, D11, D12, D20, D21. И поместить полученное в том же порядке A2, B2,C2,E2,F2,G2. Буду вам весьма благодарен, если сбросите файл пример
alex77755, Извините изначально, наверное, сформулировал вопрос неправильно. Тоесть если по простому, мне надо чтоб я мог с закрытой книги извлечь данные, например с ячейки D4, D5, D11, D12, D20, D21. И поместить полученное в том же порядке A2, B2,C2,E2,F2,G2. Буду вам весьма благодарен, если сбросите файл примерdx
dx, Вам мало вынесенных банов? Ещё два - и Вы будете заблокированы НАВСЕГДА Потратить пару минут на чтение правил выше Ваших принципов? Если да - то я Вас окончательно забаню не дожидаясь срока Тема закрыта
dx, Вам мало вынесенных банов? Ещё два - и Вы будете заблокированы НАВСЕГДА Потратить пару минут на чтение правил выше Ваших принципов? Если да - то я Вас окончательно забаню не дожидаясь срока Тема закрытаSerge_007