|
|
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
KL (XL) Deggasad KL (XL) (!) Cинтаксис Application.Trim() несколько иначе работает со значениями ошибки, чем первые два. Привет, не пояснишь ли эту фразу? а то интересно стало. Я всегда именно так использую функции рабочего листа. В случае с Application.WorksheetFunction.Trim() или WorksheetFunction.Trim() ошибка приводит к прерыванию кода с Run-Time Error , и должна отлавливаться с пом On Error Resume Next: Debug.Print Err.Number или чем-то подобным. Application.Trim() молча возвращает значение номера ошибки (в этом случае, тип переменной должен быть Variant, чтобы не возникла ошибка Type-Mismatch Error с прерыванием кода). Здесь ошибка отлавливается с пом. функции IsError() . KL [MVP - Microsoft Excel] Спасибо. Я , по-моему, как раз поэтому стал записывать как Application.Trim(), потому что IsError() отловить можно было. Только почему то у меня этот факт нигде не отложился, теперь то запомню (надеюсь). Ещё раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 15:01:51 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
Спасибо! Только опять момент - виноват, не описал нюанс шаблона таблицы, формируемой на втором листе. Мне необходимо добавить в начало этой таблицы четыре пустых столбца, чтобы потом их заполнять вычисляемыми данными из других столбцов рекордсета. Поступил так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но непонятно - при пошаговом выполнении макроса - всё нормально, при автоматическом - тихая остановка на первой выборке, после вставки этих пустых столбцов! На всяк. случай - критично ли этой процедуры, если для некоторые рекордсеты содержат пустые столбцы? Может сразу превращать(именовать) их в диапазоны, чтобы воспринимались как единое целое?... Ещё вопросики: 1. Как результат этого выражения: rng(row, 1) = Format(rng(row, 5), "000") & Format(rng(row, 6), "000") превратить в текст? (нельзя терять лидирующих нулей). 2. Как правильно надо превращать число в ячейке, сохранённое как текст, обратно в число? И на перспективу - есть какие-нибудь готовые примеры реализации только в коде (памяти), без вспомогательного листа нахождения значения в табличке на перекрестье названий строки столбца? Будет время - хочу попробовать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 20:51:03 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
LeCrunch И на перспективу - есть какие-нибудь готовые примеры реализации только в коде (памяти), без вспомогательного листа нахождения значения в табличке на перекрестье названий строки столбца? Будет время - хочу попробовать) Ты же уже спрашивал, ты что не читаешь ответы? неск-ко постов назад ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 21:23:19 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
Deggasad Так я же сейчас имею ввиду готовые примеры реализации только в коде (памяти), без вспомогательного листа ! Т.е. не переписывая в VBA то, как это было реализовано ранее формулами, а собственно алгоритм, как это можно проделать без физической таблички на листе Excel. Хотя это нескоро. С непонятками в макросе разобраться бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 21:36:59 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
LeCrunchМне необходимо добавить в начало этой таблицы четыре пустых столбца, чтобы потом их заполнять вычисляемыми данными из других столбцов рекордсета. Поступил так:... Но непонятно - при пошаговом выполнении макроса - всё нормально, при автоматическом - тихая остановка на первой выборке, после вставки этих пустых столбцов! На всяк. случай - критично ли этой процедуры, если для некоторые рекордсеты содержат пустые столбцы? Может сразу превращать(именовать) их в диапазоны, чтобы воспринимались как единое целое?... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. LeCrunch1. Как результат этого выражения: rng(row, 1) = Format(rng(row, 5), "000") & Format(rng(row, 6), "000") превратить в текст? (нельзя терять лидирующих нулей). Код: plaintext LeCrunch2. Как правильно надо превращать число в ячейке, сохранённое как текст, обратно в число? Код: plaintext 1. 2. LeCrunchИ на перспективу - есть какие-нибудь готовые примеры реализации только в коде (памяти), без вспомогательного листа нахождения значения в табличке на перекрестье названий строки столбца? Например так: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 21:46:28 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
LeCrunchСпасибо! Ещё вопросики: 1. Как результат этого выражения: rng(row, 1) = Format(rng(row, 5), "000") & Format(rng(row, 6), "000") превратить в текст? (нельзя терять лидирующих нулей). 2. Как правильно надо превращать число в ячейке, сохранённое как текст, обратно в число? Можно ещё формат сделать текстовым в ячейке Код: plaintext 1. 2. 3. Назад в число Код: plaintext 1. 2. 3. А если нули нужны только для визуального отображения, то можнотолько формат числа поменять Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 21:58:45 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
Пардон, еще две вещи забыл: 1) Код: plaintext не означает, что все три переменные задекларированы как тип Range. На самом деле, первые две - Variant, а последняя - Range. Правильно было бы: Код: plaintext 2) Код: plaintext В Excel2003 макс. число строк на листе 65536, а макс. число типа Integer - 32767. Т.ч. может нехватить (я уже не говорю про Excel2007). Так что лучше: Код: plaintext Да, и еще небольшая чистка моей версии кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2007, 22:00:00 |
|
||
|
Данные из диапазона - в цикл для ADO
|
|||
|---|---|---|---|
|
#18+
Ещё раз большущее спасибо всем участникам темы, самому форуму и отдельно Most Valuable Professional'у! ;) Успел до конца отпуска - здорово облегчив работу на будущее! Однако тему прошу не закрывать, ибо, войдя во вкус, планирую понемножку улучшать макрос и дальше. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 06:30:28 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34737201&tid=2182440]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 328ms |

| 0 / 0 |
