powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excell/VBA: програмный обмен данными между книгами
13 сообщений из 13, страница 1 из 1
Excell/VBA: програмный обмен данными между книгами
    #33348132
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кликая на обьект, пользователю предлагается из одной книги Excell открыть другую. Он выбирает директорию и открывает екселевский файл. Можно ли програмно сделать так, чтоб из открываемого им файла данные переносились в первую книгу, с которой он запустил этот файл?

Забыл сказать, что в открываемой книге еще вычисления делаются, чтобы нужные данные получить, то есть из нее нельзя слепо копировать и закрывать.

Получается, что нужно сперва из одной книги открыть другую, затем в открытой посчитать, и некоторые результаты (не все!) отобразятся в разных листах исходной книги.
Как это сделать???????

Помогите, пожалуйста, босс - зверь немецкой национальности, ему и дела нет, что я с этим никогда не сталкивался!!!!!!
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33348416
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели никто не знает? Или это не решабельно?

Помогите, пожалуйста! С меня открытка на рождество из Германии...
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349128
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чем собственно трудности?
как открыть книгу из одной другую уже было где-то здесь на форуме
а как перенести - это зависит от того что нужно, к примеру, можно использовать запрос и тогда открывать вторую книгу совсем не надо будет (только при очень запутанных расчетах он не поможет)
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349167
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, "помогли"... знатоки, блин
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349275
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vovik5, слишком "общий" вопрос, неконкретизированный.
Типа "как мне работать с виндоус?"
В обоих случаях - немерянное количество ответов... тысячи решений.
Если ты заметил, здесь весь форум посвящен данным и расчетам, выбирай любой топик :))
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349569
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Letter_D авторVovik5, слишком "общий" вопрос, неконкретизированный

Вроде подробно все описал...

Из одной книги при необходимости открываем другую, используя Application.FileDialog(msoFileDialogOpen).Show
Далее в зависимости от задачи на одном из пяти листов открываемой книги делаем расчетик. Некоторые результаты этого расчета должны отобразиться в исходной книге на разных листах. Вот и все.
С открытием книги проблем нет... В открываемой книге к объекту привязал макрос, который копирует нужные ячейки и вставляет их в исходную книгу:
Worksheets("Tabelle1").Range("A4").Copy
Workbooks("INPUT MASK with macros.xls").Worksheets("INPUT").Activate
ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
ActiveWorkbook.Worksheets("INPUT").Paste

Возникает проблема - копируется из ячейки не значение, а формула. Как копировать значение? А самое главное, как не привязываться к названию исходной книги (INPUT MASK with macros.xls)? Ведь файл в дальнейшем может быть переименован пользователем и тогда нифига работать не будет...
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349751
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Копировать значения так:
PasteSpecial Paste:=xlPasteValues
Книгу запомнить можно так, например:

Объявить переменную:
Код: plaintext
Public MyName

Запомнить ее при запуске макроса
Код: plaintext
MyName = ActiveWorkbook.Name

А когда понадобится, активировать запомненное...
Код: plaintext
Workbooks(MyName).Worksheets("INPUT").Activate
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349775
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, сейчас буду пробовать...
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349795
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый, Letter_D, чего-то у меня ни хрена не получается, наверно мозги из задницы растут. не могли бы вы примерчик накидать небольшой?
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349897
Vovik5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так, в первой книге:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public MyName
Sub Open_Click()
'
' Open_Click Macro
' Macro recorded 27-10-2005
'
    MyName = ActiveWorkbook.Name
    
    Application.Dialogs(xlDialogOpen).Show
'
End Sub

А во второй книге так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub Oval111111_Click()
'
' Oval111111_Click Macro
' Macro recorded 28-10-2005
'
  Worksheets("Tabelle1").Range("A4").Copy
  Workbooks(MyName).Worksheets("INPUT").Activate
  ActiveWorkbook.Worksheets("INPUT").Range("I3").Select
  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

   
'
End Sub

Не работает блин. Похоже я чего напортачил с переименовыванием первой книги....
Как исправить????
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33349995
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык я подразумевал. что код в одной книге.
Конечно, вторая книга эту переменную не видит - разные VB-проектыж :((
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33358015
asta97
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алгоритм решения может быть такой:
1) Есть у тебя форма , юзер выбрал в ней нужную книгу
2) Ты открываешь, активизируешь, пишешь значения нужных листов в массивы, коллекции-
3) Пишешь из массивов куда тебе надо, хочешь в форме элем. навесь, пусть юзер указывает, куда ему надо.
...
Рейтинг: 0 / 0
Excell/VBA: програмный обмен данными между книгами
    #33358125
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно вставить лист из одной книги в другую, затем создать массив данных и удалить лист.
Можно брать данные прямо из другой книги, но это будет долго.

Windows("A.XLS").Activate
Cells.Select
Selection.Copy
Windows("B.xls").Activate
Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
Windows("A").Close
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excell/VBA: програмный обмен данными между книгами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]