|
|
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Разложил всё по полочкам, т.к. уже два дня с этим вопросом вожусь. Надеюсь, что это реальная затея. Помогите советом, Please. Может быть надо поменять тип переменных? Есть папка: C:\Таблицы\ В ней очень много документов вида: C 01.01.2007 по 18.01.2007 C 01.01.2007 по 21.03.2007.xls C 01.01.2007 по 03.03.2007.xls C 01.01.2007 по 15.05.2007.xls C 01.04.2007 по 08.06.2007.xls C 01.04.2007 по 21.04.2007.xls C 01.05.2007 по 29.05.2007.xls C 01.05.2007 по 01.06.2007.xls C 01.03.2007 по 13.06.2007.xls C 01.03.2007 по 18.06.2007.xls ................ В каждом из этих документов меня интересует массив "C4:X450" Искомое значение находится в первом столбце массива. Надо: написать функцию типа VBLOOKUP с тремя переменными: 1. искомое значение (должно совпадать со значением в первом столбце массива) 2. дата1 (первая дата в названии документа) 3. дата2 (вторая дата в названии тогоже документа) Код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Выдаёт, что ошибка в значении! Что не так??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2007, 22:04:26 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Давно хотел тебе ответит. но всё всремени не хватало нормально покумекать. Варианта на мой взгляд тут 2: 1) Это записыват формулу в ячейку Эксель. тогда считает. А потом уже с ячейкой что хотим. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Запускаем так Код: plaintext 1. 2. 2) Такая функция через ADO, сам в этом толком не понимаю, но вот так работает Код: 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. Запускаем так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 01:23:53 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
З.ы.: Сам грешным делом думал, что это делаетя полегче. Может оно и правда легко а я загнался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 01:27:23 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
to Deggasad: Первый вариант выдаёт значение без ссылок на три переменные, поэтому я не могу перемещать формулу или меняя значения переменных на листе получать другое значение формулы. (А ради этого, собственно и вся затея:) ) Второй вариант пока не могу проверить, потому что админ поставил урезаный Office :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:08:22 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
И ещё по первому варианту: после открытия связи не обновляются:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 12:20:31 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
redskyto Deggasad: Первый вариант выдаёт значение без ссылок на три переменные, поэтому я не могу перемещать формулу или меняя значения переменных на листе получать другое значение формулы. (А ради этого, собственно и вся затея:) ) Ну думай сам оба варианта работают: Первый проще но надо в цикле запускать. Зато потом в ячейках нормальные формулы Второй как раз то что ты хотел, как мне кажется! Но сложнее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 13:36:04 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
to Deggasad. Значит недопонял я ещё как этот цикл вставить. Я только учусь. В таком случае БОЛЬШОЕ спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2007, 13:58:18 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
to Deggasad. К первому варианту. Если ты имел ввиду так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2007, 12:54:19 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
redskyto Deggasad. К первому варианту. Если ты имел ввиду так: Код: plaintext 1. 2. Вот посмотри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2007, 14:55:04 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Спасибо, но думаю второй варант будет удобнее. Потому что у меня в Таблице разбросано около 2000 ячеек, в которых должен произойти перерассчёт (при этом по первому варианту для перерассчёта будет запрос: указать файл. 2000 раз ) и на РАЗНОМ удалении от них находится 35 дат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2007, 16:49:17 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
redskyСпасибо, но думаю второй варант будет удобнее. Потому что у меня в Таблице разбросано около 2000 ячеек, в которых должен произойти перерассчёт (при этом по первому варианту для перерассчёта будет запрос: указать файл. 2000 раз ) и на РАЗНОМ удалении от них находится 35 дат. Думаю всё таки первый вариант лучше. 1) После однократного выполнения в ячейке у вас обычная формула Эксель 2) Изменение формул макросом можно запускать только когда меняется диапазон с датами. 3) Файл указывать не нужно Если правильно записан путь в строковых переменных. Файл спрашивается только если путь неверный! 4) То что даты не слева так можно же и подругому их брать главное указать какая там закономерность Но если не хочется заморачиваться. наверное можно и вторым воспользоваться. Хоть он и корявый на мой взгляд! Я просто не знаю как по другому! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2007, 19:50:50 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Deggasad3) Файл указывать не нужно Если правильно записан путь в строковых переменных. Файл спрашивается только если путь неверный!У меня файл спрашивался даже если путь верный. А в следующем исполнении, работает не спрашивая : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Теперь я хочу: Deggasad2) Изменение формул макросом можно запускать только когда меняется диапазон с датами. Если будет время, то подскажите, как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 01:08:08 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Да уж прикол! Я же знал что должно работать! У тебя в ниже приведённом макросе В строке sdf2 = "С " , буква С , стоит английская, а не русская. Это не я поставил, я скопировал с твоего макроса, оттуда и пошла ошибка видимо. Переключись на русскую раскладку и поставь русскую С должно работать! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 08:27:21 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
redsky Deggasad2) Изменение формул макросом можно запускать только когда меняется диапазон с датами. Если будет время, то подскажите, как это сделать? Смотри пример! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 08:41:09 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Чё то я там напутал. Лучше этот пример! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 08:58:38 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
DeggasadЛучше этот пример!Прикрасно работает! СПАСИБО за уделённое время. Второй вариант у меня выдаёт значение только когда запускается макросом. Если использовать функцию func на странице, то появляется ошибка значения. Это связанно с форматом введённых значений в ячейках или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 15:55:49 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
redsky DeggasadЛучше этот пример!Прикрасно работает! СПАСИБО за уделённое время. Второй вариант у меня выдаёт значение только когда запускается макросом. Если использовать функцию func на странице, то появляется ошибка значения. Это связанно с форматом введённых значений в ячейках или как? А если строку Код: plaintext Заменить на строку Код: plaintext Работает ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 16:45:26 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
Если строку поменял, то значение для поиска без кавычек пиши в ячейках А до замены строки чтобы работало нужно было в кавычках двойных значение писать "..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 16:48:26 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
to Degassad: Громадное спасибо! УРААААААААААААААААААААААААААА! Сказка, СУППЕР, Отлично, прекрасно, то, что надо. Это то, чего я и хотел в идеале. Спасибо, что выдержали мою настойчивость. Уж больно это удобная для меня функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 17:24:58 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
А можно, чтобы в случае отсутствия значения в источнике, функция (из второго варианта) выдавала не #ЗНАЧ, а 0. И это было прописано в коде а не в ячейке в виде: =ЕСЛИ(ЕОШИБКА(func(A2;B2;C2))=ИСТИНА;;func(A2;B2;C2)) ??? Как мёд, так и ложку :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 20:18:17 |
|
||
|
И снова vblookup...
|
|||
|---|---|---|---|
|
#18+
redsky Как мёд, так и ложку :-) Код: 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. Поробуй так! Я знаю, что можно лучше. Просто я почти ничего сам в этом не понимаю, только начал разбираться! Поэтому Если кто поправит буду благодарен! Но вроде и так работает, только медленно-о-о-о-о-о-о! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2007, 23:55:35 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34615823&tid=2182708]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 317ms |

| 0 / 0 |
