powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработка возвращаемого значения Excel в VFP6.0
11 сообщений из 11, страница 1 из 1
Обработка возвращаемого значения Excel в VFP6.0
    #33283825
Mr.Dan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как обработать возвращаемые значения из Excel? В данном случае мне нужно сделать поиск определенной строки в столбце и если она существует, то узнать её адрес и выполнить определенные действия. Как это реализовать? Остановился вот на чем:
Код: plaintext
1.
2.
3.
4.
5.
oXL=CREATEOBJECT("Excel.Application")
oXL.Workbooks.Open(m.sFileBPK)
oXL.DisplayAlerts =.f.
Res = oXL.ActiveSheet.Range("X:X").Find( 2124222233 )
&& Как дальше быть???
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33283956
Sexton666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В твоем случае не знаю.

Но вот как можно в тупую перебором сделать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
tmpsheet=getobject([], [excel.sheet])
XLApp=tmpsheet.application
lExcel=XLApp.visible
XLApp.workbooks.open(cBook)
XLBook=XLApp.activeworkbook
XLSheet=XLBook.worksheets(cSheet)
FOR i= 1  TO кол-во строк
xlValue=XLSheet.cells(i, номер столбца).value
if xlValue=(искомое)
//делаешь то что тебе нужно
endif
next

...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33284021
Mr.Dan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По всем записям пройтись в данном случае не очень подходит, т.к. искомое значение присутствует в одном экземпляре (уникальный идентификатор) и смысла перебирать все записи нет. Да и по скорости эта операция будет ИМХО дольше выполняться.

P.S. Как vba-шными методами узнать кол-во строк в листе excel?
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33284226
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю так:
#DEFINE xlLastCell 11

lnMaxRow = loExcel.Range("A1").SpecialCells(xlLastCell).Row
lnMaxColumn = loExcel.Range("A1").SpecialCells(xlLastCell).Column

С уважением, Алексей.
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33284252
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Res = oXL.ActiveSheet.Range("X:X").Find(2124222233) .Address
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33599691
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тоже возникла проблема с поиском.
На эту команду
Код: plaintext
1.
Res = oXL.ActiveSheet.Range("X:X").Find( 2124222233 ).Address
он ругается
Код: plaintext
1.
Member FIND does not evaluate to an object

А если так
Код: plaintext
1.
Res = oXL.ActiveSheet.Range("X:X").Find( 2124222233 )
То как узнать номер найденной строки ?
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33599835
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Res = oXL.ActiveSheet.Range("X:X").Find(2124222233)
lnRow=Res.Row
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33600739
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А когда он не находит запись, тоже свойство Row доступно ?
Он ругается что Res не является объктом ...
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33601157
S866
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так немного модифицируй код AleksMed

Res = oXL.ActiveSheet.Range("X:X").Find(2124222233)
if vartype('RES')='O'
lnRow=Res.Row
else
*Ничего не найдено
endif
и всего то
...
Рейтинг: 0 / 0
Обработка возвращаемого значения Excel в VFP6.0
    #33601199
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S866Ну так немного модифицируй код AleksMed

Res = oXL.ActiveSheet.Range("X:X").Find(2124222233)
if vartype('RES')='O'
lnRow=Res.Row
else
*Ничего не найдено
endif
и всего то
2 S866 Не подсказывай
Только VARTYPE(RES)

2 Gabit Не жди 100% решения. Скорее всего тебя подтолкнут в нужном направлении, а дальше сам включай соображалку и вперед (без обид) :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Обработка возвращаемого значения Excel в VFP6.0
    #36316915
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возник вопрос по данной теме.
Какая переменная содержит код ошибки ?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработка возвращаемого значения Excel в VFP6.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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