|
|
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Как обвести ячейки в рамку от скажем "A1" до последней ячейке в которой есть хоть какая-то информация.... То есть: A B C D E 1 2 3 4 5 2 6 7 3 8 9 Обвести надо все ячейки от A1 до E3, но они каждый раз будут разные и если в строке 4 появиться текст, то обведение должно продолжиться... а если очистить столбец E, то рамка на него распространяться не должна... Надеюсь нормально объянила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 14:32:27 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
[quot Loll ]....объянила.[/quot] нормально... Есть оооочень хорошее - справочники (как на бумаге, так и в Helpe и в инете), пользуйся ими, не заставляй читать курс лекций по введению в программирование... Не плохо см. по поиску в форумах... Сначала тебе нада найти "пустую ячейку", затем применить "обведение" . Енто делается так: нажимаешь на запись макроса, выделяешь диапазон в котором будешь енто всё делать, Выбираешь в строке формул нужную функцию (следует учесть разницу NULL и EMPTY), закрепляешь последнюю непустую ячейку и "обводишь с нее до которой начинала... Можно сразу писать по схеме: найти пустую ячейку в цикле в диапазоне с логикой - если не пустая-обводи, если пустая -Stop/перейди к след. диапазону... Stepler (щёлк-щёлк!!) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 14:50:05 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Stepler не выдержал. :) Вот набросал. Выделяем диапазон (хоть весь лист) и запускаем. Претензии не принимаются. (c) Victosha Код: 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. Ограничение: 1234526738913453 Выделит только первые 4 строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 09:27:08 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
' Сравниваем данные столбца с ячейкой 65536 (пустая ячейка). Set rng2 = Columns(intI).ColumnDifferences(comparison:=Cells(65536, intI)) А если А 65536-IV65536 заняты - то "кранты"...... :) Stepler (щёлк-щёлк!!) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 09:59:32 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Пользователь2Претензии не принимаются. (c) Victosha Оптимизируйте и изменяйте код исходя из ваших условий и требований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 10:01:59 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Ребята! Я не прогер, для меня все это такой темный лес! Давайте упростим задачу левая верхня ячейка всегда занята и она имеет адрес A1, нижняя правая тоже всегда занята, но конкретного адреса не имеет... Все ячейки нужно выделить по периметру... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 10:37:23 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
LollВсе ячейки нужно выделить по периметру... Я код для кого писал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 10:38:46 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Я та тоже не ПРОГЕР ..... Код Пользователь2 написал подробно, я даже понял :) Stepler (щёлк-щёлк!!) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 11:25:08 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Я же специально комментарии добавил. :) Stepler . :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 11:37:49 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
LollРебята! Я не прогер, для меня все это такой темный лес! Давайте упростим задачу левая верхня ячейка всегда занята и она имеет адрес A1, нижняя правая тоже всегда занята, но конкретного адреса не имеет... Все ячейки нужно выделить по периметру... Типа как мы не справились с задачкой... "Бездари, тогда задачу упрощаю : не 2*2, а 1+1=?" >Пользователь2 Отвечать будешь?, а то родителей в школу вызовут.... >Loll Я понимаю, что тебе хочется решенного вопроса кем-то. Времени для решения твоих вопросов уже ушло много, а твои задачи не решены полностью. Выводы : либо учи язык, либо ставь конкретную задачу (сначала обдумай ее), чтобы на форуме по возможности дали точный ответ, а не наметки решения задачи.... Задача по поиску и преобразованию текста.... Получил мой код? Но енто тоже направления решения, ведь надо в ентой заготовке исчо прописать вариант повторений значения поиска, частоту использования (уже перемещен и выделен текст) и т.д. А лучше вообще вставить в цикл с переменной р="Текст1", потом выполняется поиск, преобразование... после ентого р="Текст2" и на исходную по поиску.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 11:58:11 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Окей! Задача целиком и полность, потому, что я устала уже сама колупаться :( Программа bCAD Exel файл его нужно привести к необходимому виду... Для этого нужно найти ячеки с определенным текстом(несколько ячеек 3-7 на в среднем) выделить жирным текстом, перенести вправо, добавить сверху пустую строку. Если текст не найден - сообщить об этом, но не обо всех, а только об одном(который я часто забываю добавить). потом все полученное обвести рамкой внутри и снаружи. И еще добавть формулу которая будут перемножать содержимое двух столбцов, но не во все подряд, а если в строках по этим столбцам ячейки не пустые, если пустые то соответственно формулу вставлять не надо. То есть в B и D есть числа, но только в строках 1 и 3, соответственно в C1 и С3 должна появиться формула перемножающая B и D, а C2 останеться пустой так как в B2 и D2 чисел нет. A B C D 1 2 3 Ничего из этого я сделать не могу... То есть вот код: Attribute VB_Name = "Module1" Sub Смета() ' ' Макрос5 Макрос ' Макрос записан 14.07.2005 (Konstruktor) ' 'Материалы основы On Error GoTo V Cells.Find(What:="Панели: Материалы основы", After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Selection.Font.Bold = True Selection.Cut ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate ActiveSheet.Paste Selection.EntireRow.Insert ' Материалы кромок R1: Resume n n: On Error GoTo V1 Cells.Find(What:="Панели: Материалы кромок", After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Selection.Font.Bold = True Selection.Cut ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate ActiveSheet.Paste Selection.EntireRow.Insert ' Крепеж R2: Resume n1 n1: On Error GoTo V2 Cells.Find(What:="Крепёж", After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Selection.Font.Bold = True Selection.Cut ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate ActiveSheet.Paste Selection.EntireRow.Insert 'Вспомогательные материалы R3: Resume n2 n2: On Error GoTo V3 Cells.Find(What:="Вспомогательные материалы", After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Selection.Font.Bold = True Selection.Cut ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate ActiveSheet.Paste Selection.EntireRow.Insert 'Профили R4: Resume n3 n3: On Error GoTo V4 Cells.Find(What:="Профили: Материалы основы", After:=ActiveCell, LookIn:= _ xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, SearchFormat:=False).Activate Selection.Font.Bold = True Selection.Cut ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate ActiveSheet.Paste Selection.EntireRow.Insert GoTo R5 V: MsgBox "В проекте отсутстуют Панели: Материалы основы" GoTo R1 V1: MsgBox "В проекте отсутстуют Панели: Материалы кромок" GoTo R2 V2: MsgBox "В проекте отсутствует Крепёж" GoTo R3 V3: MsgBox "В проекте отсутстуют Вспомогательные материалы" GoTo R4 V4: MsgBox "В проекте отсутстуют Профили: Материалы основы" GoTo R5 ' Удаление и перемещение ненужных столбцов R5: Columns("A:A").Select Selection.Delete Shift:=xlToLeft Columns("C:D").Select Selection.Delete Shift:=xlToLeft Columns("F:G").Select Selection.Delete Shift:=xlToLeft Columns("H:H").Select Selection.Delete Shift:=xlToLeft Columns("C:C").Select Selection.Cut Columns("B:B").Select Selection.Insert Shift:=xlToRight Columns("D:D").Select Selection.Cut Columns("H:H").Select Selection.Insert Shift:=xlToRight Columns("D:D").Select Selection.Delete Shift:=xlToLeft Range("D1").Select ActiveCell.FormulaR1C1 = "Цена" Range("E1").Select Cells.Select Cells.EntireColumn.AutoFit End Sub Попробуйте ради интереса запустить и увидите как все глючит, то есть выводит сообщение о том что материала нет, если нет слудующего :( Кароче все стремно, криво и мне жутко обидно %( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 12:46:42 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
2Stepler Код редактировала с учетом твоего послания... Но толку :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 12:52:48 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Пользователь2Что-то вы топиком ошиблись. Топик про поиск здесь . >Пользователь2 Задача то одна, чтоб не бегать по топикам - уж лучше в одном... Правда счас времени нет ответить (усё написать) горемычной, срочную новую сверхзадачу поставили - программировать презентацию.... Черт я там ни разу исчо не копался :). Им нада, чтоб по измененым данным (в момент презентации) анимационно росли и мигали данные рядов диаграммы.... Могет ты поможешь Loll - ей срочно нада ... К тому же она с Урала - там сдвижка относительно Москвы часа 2... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 16:22:49 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Loll2Stepler Код редактировала с учетом твоего послания... Но толку :( Протестировал твоё написание... У мени работает как в случае, если ничаво не находит, так и в случае наличия (тока нада подредактировать переходы при нахождении, чтоб не давала сообщение что не найдено).... Могет у тебе что в настройках? Опиши, как глючит и каки сообщалки дает. Тока я буду читать/отвечать с перерывами - у нас из-за грозы инет глючит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 16:26:49 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
Ну как видите в выходные я отдыхала :) 2Stepler, вот именно подредактировать переходы мне и нужно... А то выдает сообщение об отсутствии текста, даже когда он есть. У меня несколько было вариантов, этот самый рабочий... Ну и рамка с формулой - темный лес :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 06:17:07 |
|
||
|
Рамка
|
|||
|---|---|---|---|
|
#18+
LollКак обвести ячейки в рамку от скажем "A1" до последней ячейке в которой есть хоть какая-то информация.... То есть: A B C D E 1 2 3 4 5 2 6 7 3 8 9 Обвести надо все ячейки от A1 до E3, но они каждый раз будут разные и если в строке 4 появиться текст, то обведение должно продолжиться... а если очистить столбец E, то рамка на него распространяться не должна... Надеюсь нормально объянила. Я думаю, что многим будет интересно узнать, что для того чтобы выделить диапазон с данными на листе, можно воспользоваться одной строчкой.. Код: plaintext Или Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 09:43:46 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33169101&tid=2185896]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 342ms |

| 0 / 0 |
