Страницы: 1
RSS
Вывод в ячейки ширины столбцов в пикселях
 
Доброго вечера!  
Как в ячейки некой строки возвращать числа, показывающие ширину соответствующих столбцов?  
В поиске не нашёл ничего похожего.  
Как я понимаю, только VBA. Подскажите пожалуйста!
 
Sub qqq()  
Dim Iwidth As Double  
Iwidth = Range("A1").ColumnWidth  
End Sub
 
Sub Test()  
MsgBox ActiveCell.Width  
End Sub  
Узнаем ширину столбца активной ячейки. А теперь ищите информацию про сантиметры/дюймы/пиксели/пункты...
 
Посмотрите ещё здесь, пару месяцев назад задавал подобный вопрос с UDF:  
http://www.planetaexcel.ru/forum.php?thread_id=29481
 
Спасибо!  
К сожалению макрос от Kuzmich не работает.  
У Юрия всё OK, но ширина показана в 3/4 дюйма.  
А по ссылке VDM то, что нужно (отдельное спасибо),  
UDF Казанского показывает ширину столбца ячейки в пикселях  
 
Function WidthRange()  
Application.Volatile True  
WidthRange = application.caller.Width / 0.75  
End Function  
 
Только не пересчитывается автоматом, только по F9.  
 
Как можно кроме    
Sub Worksheet_SelectionChange(ByVal Target As Range)  
   Application.CalculateFull  
End Sub  
в модуле листа  
заставить UDF пересчитываться при изменении ширины столбца?  
И есть ли событие листа - изменение размеров ячейки?
 
{quote}{login=Vlad}{date=14.09.2011 12:39}{thema=}{post}У Юрия всё OK, но ширина показана в 3/4 дюйма.{/post}{/quote}Это как - ширина любого столбца равна 3/4 дюйма?  
Нет такого события листа. Список всех событий Вы можете посмотреть сами.
 
Сделайте, как у Алексея:  
Sub Test()  
MsgBox ActiveCell.Width / 0.75  
End Sub
 
Да, Юрий, я так уже сделал.  
 
Ещё элементарный вопрос по VBA:    
исхоя из того, что знак(символ) = (пиксель-5)/7 сделал UDF Казанского в таком виде  
 
Function ширинаЗН()  
Application.Volatile True  
ширинаЗН = Round((ActiveCell.Width / 0.75 - 5) / 7, 2)  
End Function  
 
но она показывает ширину столбца активной ячейки, а не той, в которую введена.  
Как грамотно написать, чтобы ширина столбца округлялась до 2-х знаков после запятой?    
(Ну не макрописец я:)
 
{quote}{login=Vlad}{date=14.09.2011 01:17}{thema=}{post}Да, Юрий, я так уже сделал.  
 
Ещё элементарный вопрос по VBA:    
исхоя из того, что знак(символ) = (пиксель-5)/7 сделал UDF Казанского в таком виде  
 
Function ширинаЗН()  
Application.Volatile True  
ширинаЗН = Round((ActiveCell.Width / 0.75 - 5) / 7, 2)  
End Function  
 
но она показывает ширину столбца активной ячейки, а не той, в которую введена.  
Как грамотно написать, чтобы ширина столбца округлялась до 2-х знаков после запятой?    
(Ну не макрописец я:){/post}{/quote}  
 
 
Function ширинаЗН(c as string)  
Application.Volatile True  
ширинаЗН = Round((range©.Width / 0.75 - 5) / 7, 2)  
End Function  
 
=ширинаЗН("A1")
Спасибо
 
Спасибо, Дмитий!  
Но я написал так  
 
Function ширЯчЗН(c As String)  
ширЯчЗН = Columns(Range©.Column).ColumnWidth  
End Function  
 
Вот все решения причесал и свёл в один файл, может, кому пригодится.  
С помощью 12 UDF определяютя ширина столбца и высота строки ячейки (заданной, выделенной или содержащей саму UDF) + макрос от Юрия.
 
Не тот пример приложил (черновик).  
Вт рабочий.
 
Попробуйте    
 
Function WidthCell(Cell As Range)  
   WidthCell = Cell.EntireColumn.ColumnWidth  
End Function
 
Спасибо, Владимир!  
Её можно ещё и протягивать!
Страницы: 1
Читают тему
Наверх