|
|
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
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" - вместо отступа слева он центрируется по горизонтали! А почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 20:42:50 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
Уж сколько раз твердили миру, нельзя использовать Selection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2005, 22:25:47 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
Вместо 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 = "@" .... Всё равно не форматирует! Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 17:30:26 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
Alex_Sandr Dim rCol AS Range ..... Set rCol = Columns(j + c + NumZ) .... rCol.NumberFormat = "@" .... Всё равно не форматирует! Как быть? Ну что значит "не форматирует"??? Ты меняешь формат ячейки на General и все. Какое еще форматирование ты хочешь? Кстати, коллекция Columns сама по себе тоже не бывает. Указывай, обязательно указывай на каком листе, в какой книге, ты этот columns берешь. То как ты пишешь - эксель возьмет первую попавшуюся колонку от первого попавшегося листа. А точнее от того листа который имеет фокус. А это далеко не всегда одно и тоже что и активный лист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 18:27:29 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
Конечно там в коде немного утрировано. Set rCol = ктототамнепомню.Columns(i) и далее rCol.NumberFormat = "@" ......... rCol.HorizontalAlignment = xlLeft rCol.IndentLevel = 2 Всё точно попадает в i-тый столбик нужного листа, но прижима влево и отступа в 2 символа нет и в помине. Возник ещё вопрос: как установить ширину колонки в зависимости от содержимого. Например у QueryTables есть AdjustColumnWidth=True А у столбцов есть подобное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2005, 21:48:03 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 00:29:25 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
White Owl А ты уверен что "ктототамнепомню." написан правильно? Конечно уверен. Всё остальное ведь работает. И в пошаговом режиме проверял. Не знаю как повесить картинку для наглядности, просто прикрепил её. А rCol.AutoFit - выдаёт ошибку, мол к Range это свойство неприменимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 20:04:52 |
|
||
|
Непонятка с форматированием
|
|||
|---|---|---|---|
|
#18+
Alex_SandrНе знаю как повесить картинку для наглядности, просто прикрепил её. Ну значит где-то дальше в макросе портишь уже отформатированную колонку. Alex_SandrА rCol.AutoFit - выдаёт ошибку, мол к Range это свойство неприменимо. Вот именно к Range это свойство и применимо. Особенно если в Range колонка или строка целиком. Если дает ошибку, значит не правильно задана rCol. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2005, 21:08:39 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33331678&tid=2185638]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
67ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 414ms |

| 0 / 0 |
