OlegSmirnov
Дата: Пятница, 24.11.2017, 07:52 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Доброго времени суток, всем. Помогите решить вопрос. На листе находится табличка с заданием диапазона. В ячейке G3 - задано начало диапазона. В ячейке C42 - задан конец диапазона. Справа находится эталонная автофигура "Прямоугольник", чье название выписано в ячейку N5. Как макросом - выложить копии эталонной фигуры - без пропусков - от начала заданного диапазона - до конца заданного диапазона ?
Доброго времени суток, всем. Помогите решить вопрос. На листе находится табличка с заданием диапазона. В ячейке G3 - задано начало диапазона. В ячейке C42 - задан конец диапазона. Справа находится эталонная автофигура "Прямоугольник", чье название выписано в ячейку N5. Как макросом - выложить копии эталонной фигуры - без пропусков - от начала заданного диапазона - до конца заданного диапазона ? OlegSmirnov
К сообщению приложен файл:
26237.xls
(47.0 Kb)
Ответить
Сообщение Доброго времени суток, всем. Помогите решить вопрос. На листе находится табличка с заданием диапазона. В ячейке G3 - задано начало диапазона. В ячейке C42 - задан конец диапазона. Справа находится эталонная автофигура "Прямоугольник", чье название выписано в ячейку N5. Как макросом - выложить копии эталонной фигуры - без пропусков - от начала заданного диапазона - до конца заданного диапазона ? Автор - OlegSmirnov Дата добавления - 24.11.2017 в 07:52
nilem
Дата: Пятница, 24.11.2017, 09:46 |
Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
OlegSmirnov , привет вот, например, так:
[vba]
Код
Sub ertert() Dim NmShp$, rBeg$, rEnd$, rst# Dim hShp#, lShp#, tShp# NmShp = Range("N5").Value rBeg = Range("G3").Value rEnd = Range("H3").Value lShp = Range(rBeg).Left: tShp = Range(rBeg).Top rst = Range(rBeg).Top + Range(rEnd).Top + Range(rEnd).Height With ActiveSheet.Shapes(NmShp) hShp = .Height Do While rst > hShp With .Duplicate .Left = lShp .Top = tShp End With tShp = tShp + hShp rst = rst - hShp Loop End With End Sub
[/vba]
OlegSmirnov , привет вот, например, так:
[vba]
Код
Sub ertert() Dim NmShp$, rBeg$, rEnd$, rst# Dim hShp#, lShp#, tShp# NmShp = Range("N5").Value rBeg = Range("G3").Value rEnd = Range("H3").Value lShp = Range(rBeg).Left: tShp = Range(rBeg).Top rst = Range(rBeg).Top + Range(rEnd).Top + Range(rEnd).Height With ActiveSheet.Shapes(NmShp) hShp = .Height Do While rst > hShp With .Duplicate .Left = lShp .Top = tShp End With tShp = tShp + hShp rst = rst - hShp Loop End With End Sub
[/vba]
nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение OlegSmirnov , привет вот, например, так:
[vba]
Код
Sub ertert() Dim NmShp$, rBeg$, rEnd$, rst# Dim hShp#, lShp#, tShp# NmShp = Range("N5").Value rBeg = Range("G3").Value rEnd = Range("H3").Value lShp = Range(rBeg).Left: tShp = Range(rBeg).Top rst = Range(rBeg).Top + Range(rEnd).Top + Range(rEnd).Height With ActiveSheet.Shapes(NmShp) hShp = .Height Do While rst > hShp With .Duplicate .Left = lShp .Top = tShp End With tShp = tShp + hShp rst = rst - hShp Loop End With End Sub
[/vba]
Автор - nilem Дата добавления - 24.11.2017 в 09:46
OlegSmirnov
Дата: Пятница, 24.11.2017, 10:32 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
nilem, немного неточно работает. Если блок не умещается - то он - должен вообще рисоваться. А здесь - блок все равно рисуется - выходя нижней границей за рамки диапазона.
nilem, немного неточно работает. Если блок не умещается - то он - должен вообще рисоваться. А здесь - блок все равно рисуется - выходя нижней границей за рамки диапазона. OlegSmirnov
Ответить
Сообщение nilem, немного неточно работает. Если блок не умещается - то он - должен вообще рисоваться. А здесь - блок все равно рисуется - выходя нижней границей за рамки диапазона. Автор - OlegSmirnov Дата добавления - 24.11.2017 в 10:32
nilem
Дата: Пятница, 24.11.2017, 10:34 |
Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Нижняя граница последнего блока не должна пересекать нижнюю ячейку (ячейку целиком) диапазона. Так?
Нижняя граница последнего блока не должна пересекать нижнюю ячейку (ячейку целиком) диапазона. Так? nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Нижняя граница последнего блока не должна пересекать нижнюю ячейку (ячейку целиком) диапазона. Так? Автор - nilem Дата добавления - 24.11.2017 в 10:34
OlegSmirnov
Дата: Пятница, 24.11.2017, 10:58 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
nilem, да
Ответить
Сообщение nilem, да Автор - OlegSmirnov Дата добавления - 24.11.2017 в 10:58
nilem
Дата: Пятница, 24.11.2017, 11:34 |
Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Вот эту строку (вообще неправильная строка) [vba]Код
rst = Range(rBeg).Top + Range(rEnd).Top + Range(rEnd).Height
[/vba] измените вот так [vba]Код
rst = Range(rEnd).Top - Range(rBeg).Top
[/vba]
Вот эту строку (вообще неправильная строка) [vba]Код
rst = Range(rBeg).Top + Range(rEnd).Top + Range(rEnd).Height
[/vba] измените вот так [vba]Код
rst = Range(rEnd).Top - Range(rBeg).Top
[/vba] nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Вот эту строку (вообще неправильная строка) [vba]Код
rst = Range(rBeg).Top + Range(rEnd).Top + Range(rEnd).Height
[/vba] измените вот так [vba]Код
rst = Range(rEnd).Top - Range(rBeg).Top
[/vba] Автор - nilem Дата добавления - 24.11.2017 в 11:34
OlegSmirnov
Дата: Пятница, 24.11.2017, 11:43 |
Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
nilem, теперь все работает идеально. Вы - воистину великий программист.
nilem, теперь все работает идеально. Вы - воистину великий программист. OlegSmirnov
Ответить
Сообщение nilem, теперь все работает идеально. Вы - воистину великий программист. Автор - OlegSmirnov Дата добавления - 24.11.2017 в 11:43