Страницы: 1
RSS
Можно ли в окне сообщения (результат MsgBox'а) выровнять данные?
 
Здравствуйте.
При помощи Msgbox’а я хочу вывести на окно сообщения данные с активного листа, в виде таблицы вот таким кодом:

Sub ffff()
q = ActiveSheet.UsedRange.Value
For C = 1 To UBound(q, 1)
For R = 1 To UBound(q, 2)
ww = ww & vbTab & q(C, R)
Next R
ee = ee & vbCr & ww
ww = ""
Next C
MsgBox ee, vbMsgBoxRight
End Sub

Но, в окне данные выровнены по левому краю (хотя я написал vbMsgBoxRight)
Скрин окна прилагаю

Можно ли выровнить данные по правому краю? Или по центру?
 
vbMsgBoxRight - это к заголовку относится.
 
попробовал выполнить: MsgBox "dada", vbMsgBoxRight
текст сообщения выходит по правому краю  :)  
а если просто MsgBox "dada", то по левому
 
Понял))) Но на Вашем скрине я вижу данные, где выравнивание сообщения по ПРАВОМУ краю.
 
Юрий М

Как?

На скрине данные выровнены по ЛЕВОМУ краю!!!

Картофель и Вина ------->>> буква В точно под буквой К, значит они выровнены по ЛЕВОМУ краю (ведь буква В - это крайняя ЛЕВАЯ буква слова вина и К - это крайняя ЛЕВАЯ буква слова картофель)
 
А Вы уберите выравнивание по правому краю и сравните.
 
Юрий М
убрать выравнивание по правому краю? откуда?

в моём коде убрать или оставить vbMsgBoxRight --->> все равно в тексте сообщения ДАННЫЕ выравниваются по ЛЕВОМУ краю (меняется выравнивание только ЗАГОЛОВКА)

а в таком коде: Msgbox "dada", vbMsgBoxRight --->> и данные и заголовок выравниваются по ПРАВОМУ краю, а при убирании vbMsgBoxRight --->>и данные и заголовок выравниваются по ЛЕВОМУ краю
Изменено: Б А Х Т И Ё Р - 29.04.2013 16:06:50
 
Вывод - с табуляцией выравнивание не дружит. Наверное))
 
дааа...

а без табуляции не получается так, чтобы данные красиво стояли в один столбец, они как бы смешиваются
 
Ну если уж так приспичило - я бы сам формировал каждую строку сообщения пробелами в нужном виде.
 
Игорь

А как? узнать длину каждого значения и выровнять путём вставки необходимого количества пробелов?
 
Ну как? Например так неэлегантно влоб:

Код
Sub tt()
    Dim s$
    s = "qwer"
    s = Right("WWWWWWWWWW" & s, 10)
    MsgBox s
End Sub

Вместо WWWW конечно нужны пробелы.
 
ok
Страницы: 1
Читают тему
Наверх