Страницы: 1
RSS
VBA, как определить ширину всех столбцов/высоту всех строк до и после определенной ячейки
 
Всем привет.
В общем вопрос в названии темы.
Буду признателен за помощь.
 
Определили и что дальше? Как/где результат будет храниться? Вы указали что хотите, но результат не привели.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
ну, например, Range.Top Range.Left
еще помогут
http://msdn.microsoft.com/en-us/library/office/ff822174(v=office.15).aspx

только вот зачем, если не секрет????
Изменено: Максим Зеленский - 18.08.2014 19:21:56
F1 творит чудеса
 
Цитата
JayBhagavan пишет: Как/где результат будет храниться
Не видел смысла приводить.
Допустим абстрактный пример:
Код
Sub test
 Dim q1 as Long'ширина столбцов до ячейки Е8
 Dim q2 as Long'ширина столбцов после ячейки Е8
 Dim q3 as Long'высота строк до Е8
 Dim q4 as Long'высота после Е8
 MsgBox ("ширина столбцов до ячейки Е8" & q1)
 MsgBox ("ширина столбцов после ячейки Е8" & q2)
 MsgBox ("высота строк до Е8" & q3)
 MsgBox ("высота после Е8" & q4)
End Sub

Цитата
Максим Зеленский пишет: Range.Top Range.Left
спс., но это как я понимаю только 2 параметра (ширина и высота до) а как быть с параметрами после?
Изменено: Ivan.kh - 18.08.2014 19:21:38
 
а циклом пробежаться? )))
см. исправленное сообщение выше

намек - а какой топ-лефт у последней ячейки листа?
Изменено: Максим Зеленский - 18.08.2014 19:24:44
F1 творит чудеса
 
например, можно так:
Код
Set q0 = Cells(Cells.Rows.Count, Cells.Columns.Count)
q2 = q0.Left + q0.Width - Range("E8").Left - Range("E8").Width
 и высоту по аналогии
F1 творит чудеса
 
Цитата
Максим Зеленский пишет: если не секрет????
не секрет конечно же.
В общем есть надстройка по координатному выделению FollowCellPointer, которая рисует графические линии-стрелки для подсветки текущей строки и столбца только сверху и слева.
Думал доделать еще и прорисовку линий справа и снизу. Но затея по ходу не выйдет. Почему-то у линий есть лимит длинны - 5965,23 см  :(

За помощь спасибо
Изменено: Ivan.kh - 18.08.2014 20:01:47
 
хм... так а зачем вся ширина листа, если достаточно ширины-высоты окна, т.е. видимой части? смысл отписывать линии за пределами окна?
F1 творит чудеса
 
чтоб при прокрутке вверх-вниз, влево-вправо выделение оставалось видным
 
Может кому пригодится:
Код
Sub test()
 Dim q1 As Long 'ширина столбцов до ячейки Е8
 Dim q2 As Long 'ширина столбцов после ячейки Е8
 Dim q3 As Long 'высота строк до Е8
 Dim q4 As Long 'высота после Е8
 q1 = Range(Cells(8, 1), Cells(8, 4)).Width
 q2 = Range(Cells(8, 6), Cells(8, Columns.Count)).Width
 q3 = Range("e1:e7").Height
 q4 = Range("e9:e" & Rows.Count).Height
 MsgBox ("ширина столбцов до ячейки Е8 = " & q1)
 MsgBox ("ширина столбцов после ячейки Е8 = " & q2)
 MsgBox ("высота строк до Е8 = " & q3)
 MsgBox ("высота после Е8 = " & q4)
End Sub 
Изменено: Ivan.kh - 19.08.2014 11:28:43
 
Цитата
Ivan.kh пишет:
Думал доделать
Да, затея очень плохая, если учесть, что Вы не знаете даже как узнать ширину столбца и высоту строки. Работа с объектами типа Shape еще сложнее. Притом что там не все измеряется в тех же величинах, что и в ячейках.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ivan.kh, вы уверены, что это сантиметры?
F1 творит чудеса
 
Цитата
The_Prist пишет: Вы не знаете даже как узнать ширину столбца и высоту строки
Ну узнал же :). А если по существу, то думал на что знаний хватит - самостоятельно сделать, а остальное за плату кого-то попросить.

Максим Зеленский, да, вы правы, погорячился, в коде убрал, спасибо, что заметили.
 
Я Вас хочу сразу тогда предупредить - т.к. это объекты - если выделение будет на всю ширину строки и высоту строки - выделять ячейки в этих строках и столбцах будет сложновато, т.к. объекты располагаются поверх ячеек и выделяться при клике мышью будут именно они(объекты). Надо будет это учесть.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
На сайте есть примеры координатного выделения. Без стрелок, правда, но рабочие))
 
The_Prist, Спасибо
Юрий М, я от туда же и узнал об этой надстройке. Но у каждого способа есть свои минусы. Как мне показалось, со стрелками - наиболее удачный (удобный) вариант.
Страницы: 1
Наверх