|
|
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Фильтрую по 2 колонкам, причём в 3-ем столбце применяю одновременно 2 критерия. Алгоритм не работает, однако если использовать 1 критерий (в 3-ем столбце) и 1 критерий в 10-ом столбце, то всё в порядке. Подскажите, пожалуйста, где я ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 19:29:41 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
nPUBET Вместо Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 23:28:18 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
lena_### Вместо Код: plaintext Код: plaintext Спасибо. Получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 11:10:10 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#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. Дальше не смог сформулировать. Пытаюсь сделать следующее: - в цикле Код: plaintext Подскажите, пожалуйста, как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 13:15:36 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Нужен другой алгоритм. Предлагаю так. Организовываем доп. столбец (в примере - "M") в который вставляем формулу "ABS", дальше делаем сортировку по доп. столбцу и столбцу "K" ("No.") после этого устанавливаем фильтр и делаем пробег по отфильтрованным строкам с проверкой, на раменство, предыдущей ячейки с последующей и если они равны накапливаем в массив, а после пробега удаляем. А затем очищаем доп. столбец. Мда... Вообщем разберись с кодом. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 16:17:52 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor Спасибо за алгоритм! ...извиняюсь, я немного не так обьяснил... 1. Сортирую. 2. Перехожу в 3-й столбец ("Участок"). 3. Ищу в этом столбце одинаковые номера по следуюшему критерию Код: plaintext 1. 4. Образую области обработки для каждого номера по критерию отдельно (на рисунке они - разными цветами). - т.е. с 2-ой по 9-ю строки - это номера, которые подходят под номер "C10001-А*" (см. рис.) - с 10-ой по 15-ю строки - "E10399-K*" - с 16-ой по 45-ю строки - "C10145-A*" 5. Если номер в 3-ем столбце нижней строки не подходит по критерию, перехожу в 11-ый столбец (т.е. иду с 9 строки 3-го столбца во 2-ю строку 11-го столбца - т.к. область обработки для "C10001-А*" находится в промежутке с 2-ой по 9-ую строки). 6. Здесь (т.е. только для "C10001-А*") ищу одинаковые значения в абсолютном выражении. 7. Eсли сумма 2-х значений (одинаковых в абсолюте) равна нулю (в суммировании участвуют только две ячейки), то строки с этими значениями удаляю. В итоге, если всё просчитаю, от строк на рисунке останется только две. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 17:05:40 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Помойму то что я написал подойдет, только удаление надо подправить Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 17:18:42 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
работает только критерий надо подправить Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 17:39:15 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
...у меня такой pезультат: остается 3 строки (см. рис.). Я многое в VBA пока не понимаю. Объясни, пожалуйста, что выполняется в отдельных строках Твоего алгоритма (выделил по частям). 1 Часть: Код: plaintext 1. 2. 3. 4. 5. 2 Часть: Код: plaintext 1. 2. 3. 3 Часть: Код: plaintext 1. 2. 4 Часть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 5 Часть: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 18:49:24 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Файл с тремя строками... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 19:09:00 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#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. Error 1004 (Autofilter method of Range Class). Подскажите, пожалуйста, как фильтровать столбцы динамически, т.е. по названию столбца, не используя в "Field:=" числа, а названия столбцов. Файл с "Еrror 1004" приложил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 12:54:23 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
1 Часть: Код: plaintext 1. 2. 3. 4. 5. For Each fil In .AutoFilter.Filters - пробег по всем колонкам фильтра If fil.On Then .ShowAllData: Exit For - если колонка отфильтрована то снимаем фильтр со всех колонок и выходим из цикла 2 Часть: Код: plaintext 1. 2. 3. 3 Часть: Код: plaintext 1. 2. присваиваем переменной "rng" не скрытые (xlCellTypeVisible) ячейки столбца "М" For Each rng2 In rng - присваиваем поочереди переменной rng2 ячейки из переменной rng 4 Часть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 5 Часть: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 13:30:17 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor1 Часть: Код: plaintext 1. Спасибо! ...может у Тебя есть идеи по "...Range("a1").AutoFilter Field=.." не по числам? nPUBET, 19.09, 12:54 cм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 13:52:25 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
идея только одна, поскольку невозможно в свойстве Field обращаться не по номеру, надо через find искать номер столбца. примерно так Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 15:55:21 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodorидея только одна, поскольку невозможно в свойстве Field обращаться не по номеру, надо через find искать номер столбца. примерно так Код: plaintext 1. 2. 3. Спасибо за идею! Пока у меня выглядит так. Cортирует, но строки не удаляет (думаю, дело в номерах столбцов). Поэтому cейчас занимаюсь заменой номеров и букв столбцов (11, 13, 15, "M2:M", "K2",...) на iPT. Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 16:38:54 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#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. Вычисления =ABS(RC[-22])= делаю в 33-ом столбце (на всякий случай). Код наверху работает. А вот вариант строки внизу не проходит. .Range(.Cells(2, 33), .Cells(.Cells(Rows.Count, iNo).End(xlUp).Row, 33)).FormulaR1C1 = "=ABS(RC[Cells(2,iNo)])"Т.е не могу привязать =ABS(RC[-22])= к переменной =iNo=. Как связать =ABS(RC[-22])= с переменной =iNo=? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 19:05:35 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 08:45:44 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor Код: plaintext Большое спасибо! Вот работает... Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 19:17:48 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Часть верхнего алгоритма =Sub OTRIC_2()= Код: 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. выдаёт ошибку:"Переменная =iAB= должна иметь тип Variant или Object". Подскажите, пожалуйста, как активировать =Sub Udalenie()= только для переменных =iAB=? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 12:09:38 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#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. Подскажите, пожалуйста, как активировать =Sub Udalenie()= только для переменных =iAB=? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 12:51:46 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
nPUBET выдаёт ошибку:"Переменная =iAB= должна иметь тип Variant или Object". iAB = .Range("1:1").Find("AB*", LookIn:=xlFormulas, LookAt:= _ xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True).Column здесь используется метод "find" обьекта "Range" и возвращается номер столбца "Column" следовательно переменная д.б. long, но если метод "Find" не найдет нужного значения (в данной ситуации "AB*"), то будет вызываться ошибка, поэтому обычно делают так: объявляют переменную типа range Код: plaintext Код: plaintext 1. Код: plaintext 1. nPUBET Подскажите, пожалуйста, как активировать =Sub Udalenie()= только для переменных =iAB=? Это как? Что-то не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 13:42:21 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor nPUBET Подскажите, пожалуйста, как активировать =Sub Udalenie()= только для переменных =iAB=? Это как? Что-то не понятно. ....запускаю =Sub OTRIC_2()= (всего около 10.000 строк, после сортировки остаётся видимых строк около 100), не могу дождаться конца (жду 6 минут, потом принудительно прерываю). Т.е. =Sub OTRIC_2()= для 40 строк очень хорош, а вот если строк немного побольше (ок. 10.000) - то он уже не так эффективен. Понимаете, пытаюсь сделать следующее: 1. Сортирую 2. Считаю по функции ="=ABS(RC[" & iNo - 33 & "])"= в 33-ом столбце. 3. Смотрю в столбец под номером =iAB=: - если в этом столбце есть ячейки со значением =T?2=, тогда удаляю эти строки; - если значение другое, прохожу мимо. Т.е. хотел бы запускать =Sub Udalenie()= в =Sub OTRIC_2()= только для видимых строк. Mожет это возможно как-то через Cells.SpecialCells(xlCellTypeVisible)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 14:17:28 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
nPUBET Mожет это возможно как-то через Cells.SpecialCells(xlCellTypeVisible)? Конечно можно, и это у тебя уже было. Код: plaintext 1. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 14:46:56 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor nPUBET Mожет это возможно как-то через Cells.SpecialCells(xlCellTypeVisible)? Конечно можно, и это у тебя уже было. Код: plaintext 1. Код: plaintext Извиняюсь, если на так обьяснил. Код: 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. Вот вариант для =Sub Udalenie()= в =Sub OTRIC_2()=, однако этот берёт всю таблицу на обработку ... Т.е. пытаюсь пристроить условие в =Sub Udalenie()=, чтобы весь =Sub Udalenie()= действовал только для видимых строк. И только если значения видимых строк в 33-ом столбце одинаковые, только тогда удаляю эти строки. А скрытые строки не трогаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 15:38:11 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Подскажите, пожалуйста, как сравнить значения 2-х ячеек по расположению знаков? ...формулирую следующее условие: - если первые 8 знаков ячеек одинаковые, тогда выполняю процедуру А, - если первые 8 знаков неодинаковые, тогда - процедуру Б. Например, сравниваю А1="Д10003- А ", А2="Д10003- А ГТ" (подходит процедурa А). В случае c A16="Д10003-А", A17="Д10003- B ГТ" (подходит процедурa Б). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 19:49:42 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 21:30:50 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Deggasad Код: plaintext 1. 2. 3. 4. Подскажите, пожалуйста, следующее условие: если ячейка Cells(iK, 33) содержит только 8 знаков, тогда процедура А, если больше или меньше 8 знаков, тогда процедура Б. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 14:17:49 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 14:26:36 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor Код: plaintext 1. 2. 3. 4. Спасибо! Работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 15:12:51 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
nPUBET vkodor nPUBET Mожет это возможно как-то через Cells.SpecialCells(xlCellTypeVisible)? Конечно можно, и это у тебя уже было. Код: plaintext 1. Код: plaintext Извиняюсь, если на так обьяснил. Код: 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. Вот вариант для =Sub Udalenie()= в =Sub OTRIC_2()=, однако этот берёт всю таблицу на обработку ... Т.е. пытаюсь пристроить условие в =Sub Udalenie()=, чтобы весь =Sub Udalenie()= действовал только для видимых строк. И только если значения видимых строк в 33-ом столбце одинаковые, только тогда удаляю эти строки. А скрытые строки не трогаю попробуй так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 15:28:00 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor попробуй так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Спасибо! А то я до сих пор: как запущу весь код, начинаю считать минуты. Так что пробую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 15:39:06 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
nPUBET.... то я до сих пор: как запущу весь код, начинаю считать минуты. Так что пробую... Код: plaintext 1. 2. 3. 4. Как исправить ошибку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 18:18:39 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2007, 18:28:12 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 09:18:07 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor Код: plaintext Подскажите, пожалуйста, как сформулировать описанный алгоритм?(файл приложил). В листе =ucx= в приложенном файле строки, которые нужно удалить, пометил различными цветами - для каждого номера с одинаковыми первыми 14 знаками - отдельный цвет. Делаю так (на примере c =2AA10-C10001-A=): 1. Активирую лист =K1=, фильтрую по различным столбцам. 2. Иду в столбец =PCA=, чтобы определить размер проверки для номеров, в которых первые 14 знаков одинаковые. Для номеров c „2AA10-C10001-A“ - всего 12 строк. 3. Перехожу в столбец =No.=, ищу одинаковые числа по модулю (2967,03 = -2967,03; 1898,94 = -1898,94; 1253,82 = -1253,82; 17958,4 =-17958,4). Т.е. поиск идёт попарно. В каждой паре должен обязательно присутствовать номер из =PCA= с 14 знаками, а другой номер в этой паре должен содержать не менее 15 знаков. 4. Если для каждого номера с 14 знаками найдена пара (например, -1=+1), тогда заканчиваю обработку для этого номера. Пример записал в =Sub U_BET()= (второй модуль). С функцией =ABS= всё отлично до тех пор, пока идёт сравнение верхней и нижней ячеек (соседних по вертикали). Однако нужные ячейки находятся не всегда по соседству - см. лист =K1=. 5. Найденные ячейки помечаю зеленным цветом. Всего 8 ячеек (для номера =2AA10-C10001-A=). 6. Если ячейка белого цвета, ничего не делаю, если ячейка помечена зелёным цветом - тогда удаляю всю строку. Пока вот такой рабочий вариант. Пометил ='***=, где остановился. Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 18:25:59 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Здесь - часть алгоритма из верхнего поста. Подскажите, пожалуйста, как определить динамически перемeнную =номер строки c найденным значением в 43-ом столбце=. Т.е вместо =номер строки c найденным значением в 43-ом столбце= хотел бы вставить переменную типа Long . (Dim iStrok as Long). Трудные участки пометил ='**1=, ='**2=. Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 14:14:35 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Oхватываю в листе =K1= примерно 60% нужных ячеек, не выходя за пределы окрашенных ячеек, которые определил от руки в листе =ucx= (см. файл в посте nPUBET, 26.09.2007, 18:25 ). Т.е. 60% ячеек нахожу без oшибок (ненужные ячейки не обрабатываются). Не получается сформулировать дополнительные условия для полного охвата окрашенных ячеек, которые определил вручную в листе =ucx=. Подскажите, пожалуйста, как определить остаток - 40% нужных ячеек. Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 17:02:18 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
Oхватываю в листе =K1= примерно 60% нужных ячеек, не выходя за пределы окрашенных ячеек, которые определил от руки в листе =ucx= (см. файл в посте nPUBET, 26.09.2007, 18:25 ). Т.е. 60% ячеек нахожу без oшибок (ненужные ячейки не обрабатываются). Не получается сформулировать дополнительные условия для полного охвата окрашенных ячеек, которые определил вручную в листе =ucx=. Подскажите, пожалуйста, как определить остаток - 40% нужных ячеек. Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 20:10:35 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
С этим алгоритмом ищутся все значения (одинаковые в абсолютном выражении) в 9-ом столбце, найденные строки помечаются в 11-ом столбце синим цветом. Т.е. здесь у меня перебор - 160% (охватываются все нужные ячейки и ненужные). Пытаюсь построить следующее: 1. Ищу в 9-ом столбце противоположные по знаку, но одинаковые в абсолюте значения (например, 2967,03=-2967,03). 2. Если нахожу подходящие, то проверяю найденную пару на условия: - в сумме пара равна нулю; - проверка по данным из 5-ого столбца: здесь номер одного числа в паре имеет только 14 знаков, а номер другого числа в паре имеет более 15 знаков; первые 14 знаков номеров пары найденных чисел одинаковые. 3. Если условия пункта 2 выполняются, помечаю строки обоих чисел пары в 11-ом столбце синим цветом. Подскажите, пожалуйста, что нужно изменить в =Sub Gde()=, чтобы находились правильные пары чисел (файл приложил). Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 13:11:22 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
В этом файле код из последнего поста вообще ничего не находит. Ошибки не выводит. Пытаюсь построить следующее: 1. Ищу в 9-ом столбце противоположные по знаку, но одинаковые в абсолюте значения (например, 348 = -348). 2. Если нахожу подходящие, то проверяю найденную пару на условия: - в сумме пара равна нулю; - проверка по данным из 5-ого столбца: здесь номер одного числа в паре имеет только 14 знаков, а номер другого числа в паре имеет более 15 знаков; первые 14 знаков номеров пары найденных чисел одинаковые. 3. Если условия пункта 2 выполняются, помечаю строки обоих чисел пары в 11-ом столбце синим цветом ( чтобы потом эти строки очистить при помощи =ClearContents= ). Подскажите, пожалуйста, как сделать, чтобы строки с нужными парами чисел помечались цветом в 11-ом столбце.( файл приложил). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 18:37:12 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#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. 45. 46. 47. 48. P.S. Хорошое у тебя упорство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 11:26:29 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodor Большое спасибо! Без учебников (в физической форме) немного трудновато сочинять на VBA. ...пытаюсь улучшить Твой код: у меня в 9-ом столбце (No.) часто повторяются пары (см. рисунок). Т.е первую пару алгоритм выделяет, а вот, если клоны, то код их не помечает (пытаюсь сделать, чтобы помечались и другие одинаковые пары). P.S. клоны - одинаковые пары, например, для Len=14 и Len>=15 пара 1899= -1899 может повторятся несколько раз для одного и того же номера с одинаковыми первыми 14 знаками из 5-го столбца. На риc. - в 3-х ячейках стоят серые точки. Вот эти ячейки с серыми точками не заполняются синим цветом (пытаюсь их заполнить). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 13:06:18 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
вместо строки Код: plaintext Код: plaintext Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 13:19:13 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
да и замени Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 13:41:57 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodorвместо строки Код: plaintext Код: plaintext Код: plaintext 1. 2. Изменил на так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. может здесь возможно как-нибудь: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 13:56:27 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
vkodorда и замени Код: plaintext Код: plaintext заменил, не срабатывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 13:58:44 |
|
||
|
Автофильтр
|
|||
|---|---|---|---|
|
#18+
в строке .Cells(rngD.Row, 11).Interior.ColorIndex = 37 - была ошибка (sorry) Код: 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. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 14:17:09 |
|
||
|
|

start [/forum/topic.php?all=1&fid=61&tid=2182184]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 180ms |
| total: | 278ms |

| 0 / 0 |
