|
|
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Запустили Excel,открыли файл. теперь мне нужно запустить поиск по 1 столбцу методом oRange.Find. 1)Не знаю, как нужно инициализировать oRange перед поиском (логика подсказывает, что нужно взять ячейку А1:1) 2)Метод Find имеет такие параметры: Find( S, // What: OleVariant; EmptyParam, // After: OleVariant; xlValues, // LookIn: OleVariant; xlPart, // LookAt: OleVariant; xlByRows, // SearchOrder: OleVariant; xlNext, // SearchDirection: XlSearchDirection; False, // MatchCase: OleVariant; False, //MatchByte: OleVariant // нужно установить в True, если EmptyParam // SearchFormat: OleVariant ); Компилятор плюётся, что он не знает что это за константы xlValues, xlPart, xlByRows, xlNext. По идее они предопределены. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 15:42 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
Нашёл ссылку от английского товарища по несчастью.Он сам перелопатил кучу хидеров и создал классный хидер по ссылке http://]www.pcreview.co.uk/forums/thread-962371.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:18 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
Проблема ещё не решена: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Вот вместо !!!!!!!!!!!!!!!!!!! должна передаваться текущая ячейка, в которой находимся. Но передать тип Range нельзя. Кто знает какой параметр передаётся методу FindNext. Может есть исходники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 18:07 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
eppopovКто знает какой параметр передаётся методу FindNext. Может есть исходники А если записать макрос в Excel'e и посмотреть что там используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 18:11 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
Macros. eppopovКто знает какой параметр передаётся методу FindNext. Может есть исходники А если записать макрос в Excel'e и посмотреть что там используется? А как это можно сделать?Как создать макрос я знаю, а вот как увидеть стандартные параметры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 18:14 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
eppopov Macros. eppopovКто знает какой параметр передаётся методу FindNext. Может есть исходники А если записать макрос в Excel'e и посмотреть что там используется? А как это можно сделать?Как создать макрос я знаю, а вот как увидеть стандартные параметры? Записываем макрос, потом смотрим его текст: что-то вроде: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 18:21 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
FindNext(VARIANT & AfterCell) требует указать ячейку.Как её указать я без понятия, т.к. предыдущий вызов Find возвращает тип Range. Как указать ячейку для FindNext(VARIANT & AfterCell) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 17:40 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. Мне нужно пройтись по первому столбцу и найти все подходящие условию ячейки. Метод FindNext() работает только для oRange.GetItem(COleVariant(short(nRow)),COleVariant(short(1))) вместо строки nRow задать 1, а иначе ошибка. В чём я неправ? Почему только при nRow=1. Помогите, может кто знает ссылку на человеческую документацию по excel'евским методам с описанием всех параметров, у меня вообще ничего нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 19:59 |
|
||
|
Поиск в документе Excel из MFC
|
|||
|---|---|---|---|
|
#18+
Справка Microsoft Excel FindNext Method Continues a search that was begun with the Find method. Finds the next cell that matches those same conditions and returns a Range object that represents that cell. Doesn’t affect the selection or the active cell. Syntax expression.FindNext(After) expression Required. An expression that returns a Range object. After Optional Variant. The cell after which you want to search. This corresponds to the position of the active cell when a search is done from the user interface. Note that After must be a single cell in the range . Remember that the search begins after this cell; the specified cell isn’t searched until the method wraps back around to this cell. If this argument isn’t specified, the search starts after the cell in the upper-left corner of the range. Remarks When the search reaches the end of the specified search range, it wraps around to the beginning of the range. To stop a search when this wraparound occurs, save the address of the first found cell, and then test each successive found-cell address against this saved address. ------------------------------ FindNext Method Example This example finds all cells in the range A1:A500 that contain the value 2 and makes those cells gray. With Worksheets(1).Range("a1:a500") Set c = .Find(2, lookin:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Interior.Pattern = xlPatternGray50 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2007, 01:29 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=285&tid=2028502]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 396ms |

| 0 / 0 |
