Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
29.03.2024, 08:14:32
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Поиск:
Расширенный поиск
Добавляйтесь в нашу
группу ВКонтакте
- будьте в курсе всех новых событий сайта, узнавайте первым обо всех акциях и новых статьях!
33 233
Сообщений в
5 454
Тем от
6 750
Пользователей
Последний пользователь:
Alex1210
Excel это не сложно
Основные форумы
Вопросы по Excel и VBA
Перенос данных из одной книги в другую.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Автор
Тема: Перенос данных из одной книги в другую. (Прочитано 18619 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ZiLLi-BoBa
Новичок
Репутация: +0/-0
Офлайн
Сообщений: 16
Перенос данных из одной книги в другую.
«
:
27.03.2012, 15:37:28 »
Доброго времени суток, уважаемые коллеги.
В виду того, что по-прежнему пытаюсь познать азы VBA столкнулся с проблемой
Не могу назначить кнопке правильный код, чтобы по её нажатию -> книга2 открывалась -> в выделенную ячейку книга1 копировался фиксированный диапазон данных -> книга2 закрывалась...
Думал назначить переменные, обозначив selection.row, но дальше чтобы я не писал эксель ругается, что неправильно задан объект
Уважаемые, если у кого есть подобный опыт, а скорее всего просто наличие большей сознательности чем пока у меня в этом вопросе, помогите пожалуйста
Спасибо всем за просмотр темы и отзывы.
Записан
nilem
Эксперты
Постоялец
Репутация: +39/-0
Офлайн
Сообщений: 194
Re:Перенос данных из одной книги в другую.
«
Ответ #1 :
27.03.2012, 16:36:30 »
Если диапазон, который нужно переносить, фиксированный и известно имя книги-источника, и оба файла лежат в одной папке, то можно так:
Код:
Option Explicit
Dim arr
Sub ClickAndMove()
Dim i As Long
[a1].Formula = "=ToArray('" & ThisWorkbook.Path & "\[Книга2.xlsx]Лист1'!F6:P6)"
Selection(1, 1).Resize(, 11).Value = arr
[a1] = ""
End Sub
Private Function ToArray(ref)
arr = ref
End Function
Положите эту книгу (во вложении) в одну папку с Книга2.
Записан
ZiLLi-BoBa
Новичок
Репутация: +0/-0
Офлайн
Сообщений: 16
Re:Перенос данных из одной книги в другую.
«
Ответ #2 :
27.03.2012, 22:13:17 »
Большое спасибо Вам за отклик, но дело в том, что книги могут лежать только на своих местах (в разных папках на диске).
Именно поэтому при нажатии кнопки мне нужно определить как открыть нужную книгу(и путь к ней) и взять оттуда данные.
Я думал каким-то образом определить одну переменную как выделенную ячейку (много не нужно, то есть Integer), а другую как нужный диапазон в другой книге и уже этим оперировать, подставляя нужный диапазон в выделенную ячейку как значение. А именно в выделенную ячейку потому, что ячейка каждый раз предполагает быть следующей пустой по колонке "0", то есть каждый раз новая ячейка.
Вот как это сделать имея 2 переменные?
Буду признателен за любую наводку.
P.S.
Диапазон и имена книг фиксированные.
«
Последнее редактирование: 27.03.2012, 22:16:43 от ZiLLi-BoBa
»
Записан
nilem
Эксперты
Постоялец
Репутация: +39/-0
Офлайн
Сообщений: 194
Re:Перенос данных из одной книги в другую.
«
Ответ #3 :
28.03.2012, 07:15:20 »
Например
Код:
Option Explicit
Dim arr
Sub ClickAndMove()
Dim i As Long, f As String
f = GetFilePath 'этот путь можно прописать куда-нибудь в ячейку
i = InStrRev(f, "\"): f = Mid(f, 1, i) & "[" & Mid(f, i + 1)
[a1].Formula = "=ToArray('" & f & "]Лист1'!F6:P6)"
'для Selection
Selection(1, 1).Resize(, 11).Value = arr
''или для последней незаполненной ячейки в столбце "О"
'Cells(Rows.Count, 15).End(xlUp).Offset(1).Resize(, 11).Value = arr
[a1] = ""
End Sub
Private Function ToArray(ref)
arr = ref
End Function
Private Function GetFilePath(Optional ByVal Title As String = "Выбираем файл", Optional ByVal InitialPath As String) As String
GetFilePath = ""
With Application.FileDialog(msoFileDialogFilePicker)
.ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath: .Filters.Add "Excel", "*.xls*", 1
If .Show = -1 Then If .SelectedItems(1) <> "" Then GetFilePath = .SelectedItems(1)
End With
End Function
Записан
ZiLLi-BoBa
Новичок
Репутация: +0/-0
Офлайн
Сообщений: 16
Re:Перенос данных из одной книги в другую.
«
Ответ #4 :
28.03.2012, 15:29:59 »
Уважаемый nilem, еще раз большое спасибо, что участвуете в решении мной данного вопроса, но к сожалению я только-только начал учится (самостоятельно) vba и по всей видимости не могу разобраться в таком коде самостоятельно
Не знаком с функцией "GetFilePath", прочитал её описание, но не могу понять как ей пользоваться.
Вы не могли бы ещё немного мне помочь?
Записан
nilem
Эксперты
Постоялец
Репутация: +39/-0
Офлайн
Сообщений: 194
Re:Перенос данных из одной книги в другую.
«
Ответ #5 :
28.03.2012, 20:34:56 »
Просто вставьте все это в стандартный модуль и назначьте на кнопку, как в прикрепленном файле. В Модуль2 еще варианты.
Записан
ZiLLi-BoBa
Новичок
Репутация: +0/-0
Офлайн
Сообщений: 16
Re:Перенос данных из одной книги в другую.
«
Ответ #6 :
30.03.2012, 07:32:25 »
Всё работает, спасибо большое! Но для меня очень сложно всё ещё, читаю книжки и пытаюсь вникнуть и научится пользоваться написанным Вами.
Пока не закрыли тему, скажите, уважаемые коллеги, есть ли возможность сократить код?
Если книга из которой переносятся данные всегда на одном и том же месте, один и тот же лист в ней и диапазон строк один и тот же. Ну и книга в которую всё переносится, меняется только строка, но мануально (в коде не указывается), то есть просто вставить известный диапазон.
Как написать код: выделенная ячейка в книге1 -> открыть известную книгу2 для копирования диапазона -> копировать диапазон -> вставить в выделенную ячейку в первой книге -> закрыть книгу2
Спасибо всем!!!
Записан
ZiLLi-BoBa
Новичок
Репутация: +0/-0
Офлайн
Сообщений: 16
Re:Перенос данных из одной книги в другую.
«
Ответ #7 :
30.03.2012, 16:49:09 »
Разобрался, теперь могу это применять!
Ещё раз спасибо, nilem! :D
Записан
Страниц: [
1
]
Вверх
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Правила форума и вопросы по работе форума
-----------------------------
=> ОБЩИЕ ПРАВИЛА ФОРУМА
=> ВОПРОСЫ ПО РАБОТЕ ФОРУМА
-----------------------------
Основные форумы
-----------------------------
=> Вопросы по Excel и VBA
=> PowerQuery, PowerPivot, PowerBI и запросы
=> Вопросы по Word и VBA
=> Вопросы по Outlook и VBA
=> Вопросы по Access и VBA
=> Вопросы по PowerPoint и VBA
=> Вопросы по Office для MAC
=> Вопросы по работе в Google-таблицах
=> Полезные решения
=> Баги и глюки при работе с Excel и VBA
=> Вопросы по OpenOffice и LibreOffice
=> Вопросы по надстройке MulTEx
=> Вопросы по MyAddin
=> Вопросы по бесплатным надстройкам
=> Вопросы по программам
-----------------------------
Прочие форумы
-----------------------------
=> Заказы на написание макросов, работа для специалистов по Excel и VBA и пр.
=> Курилка
-----------------------------
Удаленные темы и сообщения
-----------------------------
=> Список удаленных
Загружается...