Страница: 1 |
|
Вопрос: Сравнить книги?
|
Добавлено: 21.03.06 18:34
|
|
Автор вопроса: 78952
|
1.Как сравнить какую-нибудь книгу(не открытую) с текущей, т.е. как получить путь и ее имя я знаю, имя сравниваемого листа не меняется, тоже не проблемма, но вот как сделать так, чтобы она вдруг не стала актив и тому подобное, т.е. с текущей нужно сравнить.
2.В обеих книгах есть столбик id содержащий, ну понятно, что он содержит :) мне вот интересно как организовать цикл так чтобы он смотрел в книги которую я открываю этот столбик и смотрел в активной(текущей) этот столбик и если цифры совпадают, то делел то-то при этом мне нужно знать адреса(т.е. не нужно просто чтобы он из открытой книги копировал определенные ячейки из строки в которой совпадающий id в текущую) а если в открытой книге есть id которого нет в текущей, то чтобы он добавлял этот id в последнюю путую ячейку.
Я знаю, что не очень хорошо изъясняюсь, и что без конкроетных примеров и того, что не получается, но мне можно любой похожий код с коментариями и я в принципе разберусь :)
искать я думаю нужно с помощью команды find или like не важно, открывать Application.GetOpenFilename и offset
я просто не знаю, как рализовать некоторые моменты и я встаю в тупик и ничего не могу делать, психую и руки опускаются, просто знаний в програм.. не хватает для граммотного построения кода, только плагиат, подстроенный под себя :(
Ответить
|
Номер ответа: 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".Select ' куда вставляем
For i = 5 To 14
For j = 4 To 9
st3 = Mid(st2, j, 1) + CStr(i)
arg = st1 + Range(st3).Range("A1".Address(, , xlR1C1)
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 |
Поиск по форуму