|
|
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Кликая на обьект, пользователю предлагается из одной книги Excell открыть другую. Он выбирает директорию и открывает екселевский файл. Можно ли програмно сделать так, чтоб из открываемого им файла данные переносились в первую книгу, с которой он запустил этот файл? Забыл сказать, что в открываемой книге еще вычисления делаются, чтобы нужные данные получить, то есть из нее нельзя слепо копировать и закрывать. Получается, что нужно сперва из одной книги открыть другую, затем в открытой посчитать, и некоторые результаты (не все!) отобразятся в разных листах исходной книги. Как это сделать??????? Помогите, пожалуйста, босс - зверь немецкой национальности, ему и дела нет, что я с этим никогда не сталкивался!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 16:27:59 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Неужели никто не знает? Или это не решабельно? Помогите, пожалуйста! С меня открытка на рождество из Германии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2005, 17:46:01 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
а в чем собственно трудности? как открыть книгу из одной другую уже было где-то здесь на форуме а как перенести - это зависит от того что нужно, к примеру, можно использовать запрос и тогда открывать вторую книгу совсем не надо будет (только при очень запутанных расчетах он не поможет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 09:30:45 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Спасибо, "помогли"... знатоки, блин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 09:55:50 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Vovik5, слишком "общий" вопрос, неконкретизированный. Типа "как мне работать с виндоус?" В обоих случаях - немерянное количество ответов... тысячи решений. Если ты заметил, здесь весь форум посвящен данным и расчетам, выбирай любой топик :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 10:35:51 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
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)? Ведь файл в дальнейшем может быть переименован пользователем и тогда нифига работать не будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 12:19:24 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Копировать значения так: PasteSpecial Paste:=xlPasteValues Книгу запомнить можно так, например: Объявить переменную: Код: plaintext Запомнить ее при запуске макроса Код: plaintext А когда понадобится, активировать запомненное... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 13:16:49 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Спасибо, сейчас буду пробовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 13:23:02 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Уважаемый, Letter_D, чего-то у меня ни хрена не получается, наверно мозги из задницы растут. не могли бы вы примерчик накидать небольшой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 13:29:21 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Сделал так, в первой книге: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. А во второй книге так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Не работает блин. Похоже я чего напортачил с переименовыванием первой книги.... Как исправить???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 14:03:24 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Дык я подразумевал. что код в одной книге. Конечно, вторая книга эту переменную не видит - разные VB-проектыж :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2005, 14:30:09 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Алгоритм решения может быть такой: 1) Есть у тебя форма , юзер выбрал в ней нужную книгу 2) Ты открываешь, активизируешь, пишешь значения нужных листов в массивы, коллекции- 3) Пишешь из массивов куда тебе надо, хочешь в форме элем. навесь, пусть юзер указывает, куда ему надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 15:55:01 |
|
||
|
Excell/VBA: програмный обмен данными между книгами
|
|||
|---|---|---|---|
|
#18+
Можно вставить лист из одной книги в другую, затем создать массив данных и удалить лист. Можно брать данные прямо из другой книги, но это будет долго. Windows("A.XLS").Activate Cells.Select Selection.Copy Windows("B.xls").Activate Cells.Select ActiveSheet.Paste Application.CutCopyMode = False Windows("A").Close ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2005, 16:19:39 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33349569&tid=2166923]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
198ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 185ms |
| total: | 467ms |

| 0 / 0 |
