powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Непонятка с форматированием
8 сообщений из 8, страница 1 из 1
Непонятка с форматированием
    #33323796
Alex_Sandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excel 2000.
Есть макрос:

Sub Макрос4()
Columns("E:E").Select
Selection.NumberFormat = "@"
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
' .WrapText = False
' .Orientation = 0
' .AddIndent = False
.IndentLevel = 2
' .MergeCells = False
End With
End Sub

Форматирует столбик "Е" как текст с отступом 2 символа.

Вот кусок кода:

Set RS = BD.OpenRecordset(s)
kolPol = RS.Fields.Count - 1
For j = 0 To kolPol
Columns(j + c + NumZ).Select
Select Case RS(j).Type
Case 3 ' число
Case 8 'дата
Selection.NumberFormat = "mm/dd/yyyy"
Selection.HorizontalAlignment = xlCenter
Case 10 'строковый
Selection.NumberFormat = "@"
If RS(j).Name = "Fio" Then
Selection.HorizontalAlignment = xlLeft
Selection.IndentLevel = 2
Else
Selection.HorizontalAlignment = xlCenter
End If

End Select
Selection.VerticalAlignment = xlCenter
Next j

Всё форматируется правильно, кроме столбца,
на который выпадает поле "Fio" - вместо отступа слева
он центрируется по горизонтали!

А почему?
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33323868
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж сколько раз твердили миру, нельзя использовать Selection.
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33326955
Alex_Sandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо
Columns(j + c + NumZ).Select
и
Selection.NumberFormat = "@"
If RS(j).Name = "Fio" Then
Selection.HorizontalAlignment = xlLeft
Selection.IndentLevel = 2

написал

Dim rCol AS Range
.....
Set rCol = Columns(j + c + NumZ)
....
rCol.NumberFormat = "@"
....

Всё равно не форматирует!
Как быть?
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33328962
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Sandr
Dim rCol AS Range
.....
Set rCol = Columns(j + c + NumZ)
....
rCol.NumberFormat = "@"
....

Всё равно не форматирует!
Как быть?
Ну что значит "не форматирует"??? Ты меняешь формат ячейки на General и все. Какое еще форматирование ты хочешь?
Кстати, коллекция Columns сама по себе тоже не бывает. Указывай, обязательно указывай на каком листе, в какой книге, ты этот columns берешь. То как ты пишешь - эксель возьмет первую попавшуюся колонку от первого попавшегося листа. А точнее от того листа который имеет фокус. А это далеко не всегда одно и тоже что и активный лист.
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33329195
Alex_Sandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно там в коде немного утрировано.

Set rCol = ктототамнепомню.Columns(i)

и далее

rCol.NumberFormat = "@"
.........
rCol.HorizontalAlignment = xlLeft
rCol.IndentLevel = 2

Всё точно попадает в i-тый столбик
нужного листа, но прижима влево и
отступа в 2 символа нет и в помине.

Возник ещё вопрос:
как установить ширину колонки в зависимости
от содержимого.
Например у QueryTables есть AdjustColumnWidth=True
А у столбцов есть подобное?
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33329308
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_SandrКонечно там в коде немного утрировано.
Set rCol = ктототамнепомню.Columns(i)
А ты уверен что "ктототамнепомню." написан правильно?

Alex_SandrrCol.IndentLevel = 2
Всё точно попадает в i-тый столбик
нужного листа, но прижима влево и
отступа в 2 символа нет и в помине.
А вообще, почему ты решил что IndentLevel это отступ на два символа? Один уровень IndentLevel равняется по ширине полутора маленьким латинским буквам n написаных стандартным шрифтом, стандартного размера. Или говоря проще - один IndentLevel равен колонке шириной 1.5.
У тебя просто колонки узенькие. Тебе кажется что текст в центре колонки, но на самом деле он прижат к левому краю, а потом от левого края сделан отступ, как и приказано.

Alex_SandrВозник ещё вопрос:
как установить ширину колонки в зависимости
от содержимого.
Например у QueryTables есть AdjustColumnWidth=True
А у столбцов есть подобное?
rCol.AutoFit
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33331678
Alex_Sandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
А ты уверен что "ктототамнепомню." написан правильно?

Конечно уверен. Всё остальное ведь работает.
И в пошаговом режиме проверял.

Не знаю как повесить картинку для наглядности,
просто прикрепил её.

А rCol.AutoFit - выдаёт ошибку, мол к Range
это свойство неприменимо.
...
Рейтинг: 0 / 0
Непонятка с форматированием
    #33331758
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_SandrНе знаю как повесить картинку для наглядности,
просто прикрепил её.
Ну значит где-то дальше в макросе портишь уже отформатированную колонку.

Alex_SandrА rCol.AutoFit - выдаёт ошибку, мол к Range
это свойство неприменимо.
Вот именно к Range это свойство и применимо. Особенно если в Range колонка или строка целиком. Если дает ошибку, значит не правильно задана rCol.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Непонятка с форматированием
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]