Страница: 1 |
Вопрос: Сравнить книги? | Добавлено: 21.03.06 18:34 |
Автор вопроса: ![]() |
1.Как сравнить какую-нибудь книгу(не открытую) с текущей, т.е. как получить путь и ее имя я знаю, имя сравниваемого листа не меняется, тоже не проблемма, но вот как сделать так, чтобы она вдруг не стала актив и тому подобное, т.е. с текущей нужно сравнить.
2.В обеих книгах есть столбик id содержащий, ну понятно, что он содержит :) мне вот интересно как организовать цикл так чтобы он смотрел в книги которую я открываю этот столбик и смотрел в активной(текущей) этот столбик и если цифры совпадают, то делел то-то при этом мне нужно знать адреса(т.е. не нужно просто чтобы он из открытой книги копировал определенные ячейки из строки в которой совпадающий id в текущую) а если в открытой книге есть id которого нет в текущей, то чтобы он добавлял этот id в последнюю путую ячейку. Я знаю, что не очень хорошо изъясняюсь, и что без конкроетных примеров и того, что не получается, но мне можно любой похожий код с коментариями и я в принципе разберусь :) искать я думаю нужно с помощью команды find или like не важно, открывать Application.GetOpenFilename и offset я просто не знаю, как рализовать некоторые моменты и я встаю в тупик и ничего не могу делать, психую и руки опускаются, просто знаний в програм.. не хватает для граммотного построения кода, только плагиат, подстроенный под себя :( |
Ответы | Всего ответов: 1 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 109611764 Вопросов: 3 Ответов: 3 |
Профиль | Цитата | #1 | Добавлено: 27.03.06 18:33 |
Правильно ли я понял, что надо получить данные из закрытой экселевской книги?
Вот как пример: Sub get_data() Dim tmp_val As Variant Dim arg, st1, st2, st3, path As String Dim i, j As Integer path = "PATH" ' путь к файлу без имени файла st2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" st1 = Chr(39) + path+"[1.xls]list1" + Chr(39) + "!" '1.xls - нужный файл, list1 - нужный лист Sheets("lst1" ![]() For i = 5 To 14 For j = 4 To 9 st3 = Mid(st2, j, 1) + CStr(i) arg = st1 + Range(st3).Range("A1" ![]() Range(st3).Select tmp_val = Application.ExecuteExcel4Macro(arg) ActiveCell.Value = tmp_val Next j Next i End Sub Этот код копирует данные из закрытой книги 1.xls из листа list1 ячейки d5-i14 в текущую книгу в лист lst1 тот же диапазон Ключевой метод здесь - Application.ExecuteExcel4Macro |
Страница: 1 |
|