Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоподбор ширины столбцов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Автоподбор ширины столбцов
Pelena Дата: Пятница, 08.06.2012, 21:33 | Сообщение № 1
Группа: Админы
Ранг: Местный житель
Сообщений: 19338
Репутация: 4519 ±
Замечаний: ±

Excel 365 & Mac Excel
Всем доброго вечера.
Вот, споткнулась на ровном месте, прошу помощи.
Экспортирую записи из запроса Access в таблицу Excel, создается новый файл, шаблон не используется. Как задать в процедуре автоподбор ширины столбцов по содержимому? Наверняка есть метод, обеспечивающий эту операцию. Подскажите, пожалуйста


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВсем доброго вечера.
Вот, споткнулась на ровном месте, прошу помощи.
Экспортирую записи из запроса Access в таблицу Excel, создается новый файл, шаблон не используется. Как задать в процедуре автоподбор ширины столбцов по содержимому? Наверняка есть метод, обеспечивающий эту операцию. Подскажите, пожалуйста

Автор - Pelena
Дата добавления - 08.06.2012 в 21:33
RAN Дата: Пятница, 08.06.2012, 22:14 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Quote (Pelena)
Как задать в процедуре автоподбор ширины столбцов по содержимому?

Макрорекордер?
Вроде справляется. smile
Если нет - подскажем.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Quote (Pelena)
Как задать в процедуре автоподбор ширины столбцов по содержимому?

Макрорекордер?
Вроде справляется. smile
Если нет - подскажем.

Автор - RAN
Дата добавления - 08.06.2012 в 22:14
Gustav Дата: Пятница, 08.06.2012, 22:28 | Сообщение № 3
Группа: Админы
Ранг: Участник клуба
Сообщений: 2770
Репутация: 1140 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
По окончании экспорта делаете Range("A1").CurrentRegion.EntireColumn.AutoFit


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПо окончании экспорта делаете Range("A1").CurrentRegion.EntireColumn.AutoFit

Автор - Gustav
Дата добавления - 08.06.2012 в 22:28
Pelena Дата: Пятница, 08.06.2012, 22:39 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19338
Репутация: 4519 ±
Замечаний: ±

Excel 365 & Mac Excel
Спасибо, Gustav и макрорекодер smile
А чем отличается EntireColumn от просто Column? Я написала ...Sheets(1).Column.AutoFit. Вроде и так работает


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСпасибо, Gustav и макрорекодер smile
А чем отличается EntireColumn от просто Column? Я написала ...Sheets(1).Column.AutoFit. Вроде и так работает

Автор - Pelena
Дата добавления - 08.06.2012 в 22:39
RAN Дата: Пятница, 08.06.2012, 22:48 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
EntireColumn - целый столбец (обычно содержащий ячейку(адрес))
Sheets(1).Column.AutoFit - сказать сложно
Sheets(1).Columns.AutoFit - столбцы листа 1 - автоподбор (ширины столбца)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеEntireColumn - целый столбец (обычно содержащий ячейку(адрес))
Sheets(1).Column.AutoFit - сказать сложно
Sheets(1).Columns.AutoFit - столбцы листа 1 - автоподбор (ширины столбца)

Автор - RAN
Дата добавления - 08.06.2012 в 22:48
Pelena Дата: Пятница, 08.06.2012, 22:54 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19338
Репутация: 4519 ±
Замечаний: ±

Excel 365 & Mac Excel
Конечно, Columns, ошиблась.
Спасибо за разъяснение


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеКонечно, Columns, ошиблась.
Спасибо за разъяснение

Автор - Pelena
Дата добавления - 08.06.2012 в 22:54
Gustav Дата: Суббота, 09.06.2012, 00:19 | Сообщение № 7
Группа: Админы
Ранг: Участник клуба
Сообщений: 2770
Репутация: 1140 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
EntireColumn - это всегда полная колонка всего листа. Columns(i) - это i-я колонка в пределах конкретного диапазона (не обязательно всего листа), для которого это свойство вызвано. Например, Range("B2:K4").Columns(1) - это диапазон B2:B4. А Range("B2:K4").Columns(1).EntireColumn - это диапазон B:B. А Range("B2:K4").EntireColumn - это диапазон B:K, т.е. полные колонки от B до K.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеEntireColumn - это всегда полная колонка всего листа. Columns(i) - это i-я колонка в пределах конкретного диапазона (не обязательно всего листа), для которого это свойство вызвано. Например, Range("B2:K4").Columns(1) - это диапазон B2:B4. А Range("B2:K4").Columns(1).EntireColumn - это диапазон B:B. А Range("B2:K4").EntireColumn - это диапазон B:K, т.е. полные колонки от B до K.

Автор - Gustav
Дата добавления - 09.06.2012 в 00:19
Pelena Дата: Суббота, 09.06.2012, 09:50 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19338
Репутация: 4519 ±
Замечаний: ±

Excel 365 & Mac Excel
Gustav, спасибо. То есть в контексте ширины столбца, в общем-то не важно, пишу я Range("B2:K4").Columns.AutoFit или Range("B2:K4").EntireColumn.AutoFit ?
А вот мой вариант Sheets(1).Columns.AutoFit, наверное, не совсем удачный, так как идет обращение ко всем столбцам листа, а не только к заполненным. В этом плане использование Range("A1").CurrentRegion более оптимально. Я правильно понимаю?

ЗЫ: извиняюсь за глупые вопросы, но с объектами Excel практически не знакома, а тупо копировать/вставить не привыкла


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеGustav, спасибо. То есть в контексте ширины столбца, в общем-то не важно, пишу я Range("B2:K4").Columns.AutoFit или Range("B2:K4").EntireColumn.AutoFit ?
А вот мой вариант Sheets(1).Columns.AutoFit, наверное, не совсем удачный, так как идет обращение ко всем столбцам листа, а не только к заполненным. В этом плане использование Range("A1").CurrentRegion более оптимально. Я правильно понимаю?

ЗЫ: извиняюсь за глупые вопросы, но с объектами Excel практически не знакома, а тупо копировать/вставить не привыкла

Автор - Pelena
Дата добавления - 09.06.2012 в 09:50
RAN Дата: Суббота, 09.06.2012, 10:00 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Правильно. Но к использованию CurrentRegion тоже следует подходить аккуратно. Он ограничивается первой пустой строкой(столбцом).
Для столбцов с 1 по 6 можно записать так
[vba]
Code
Sheets(1).Columns(1:6).AutoFit
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПравильно. Но к использованию CurrentRegion тоже следует подходить аккуратно. Он ограничивается первой пустой строкой(столбцом).
Для столбцов с 1 по 6 можно записать так
[vba]
Code
Sheets(1).Columns(1:6).AutoFit
[/vba]

Автор - RAN
Дата добавления - 09.06.2012 в 10:00
Pelena Дата: Суббота, 09.06.2012, 10:18 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19338
Репутация: 4519 ±
Замечаний: ±

Excel 365 & Mac Excel
Quote (RAN)
ограничивается первой пустой строкой(столбцом)

Да, кстати, это тоже придется учитывать
Еще раз спасибо


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Quote (RAN)
ограничивается первой пустой строкой(столбцом)

Да, кстати, это тоже придется учитывать
Еще раз спасибо

Автор - Pelena
Дата добавления - 09.06.2012 в 10:18
Gustav Дата: Суббота, 09.06.2012, 11:10 | Сообщение № 11
Группа: Админы
Ранг: Участник клуба
Сообщений: 2770
Репутация: 1140 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Quote (RAN)
Но к использованию CurrentRegion тоже следует подходить аккуратно. Он ограничивается первой пустой строкой(столбцом).

"Пожалуйста, «Стамбул — город контрастов» — какая разница — а объявление перепишем!" ©

Пожалуйста, опасаетесь CurrentRegion - есть UsedRange, а "объявление перепишем":
[vba]
Code

Sheets(1).UsedRange.EntireColumn.AutoFit
[/vba]
Quote (RAN)

Для столбцов с 1 по 6 можно записать так
[vba]
Code

Sheets(1).Columns(1:6).AutoFit
[/vba]

Нельзя. На несколько колонок/строк можно ссылаться либо Sheets(1).Columns("A:F"), либо Sheets(1).Rows("1:6"). Без кавычек числовым индексом можно ссылаться только на единичную колонку или строку: Columns(1), Rows(5). Ну и как частный случай кавычек можно также Columns("A") и Rows("5").


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Суббота, 09.06.2012, 11:27
 
Ответить
Сообщение
Quote (RAN)
Но к использованию CurrentRegion тоже следует подходить аккуратно. Он ограничивается первой пустой строкой(столбцом).

"Пожалуйста, «Стамбул — город контрастов» — какая разница — а объявление перепишем!" ©

Пожалуйста, опасаетесь CurrentRegion - есть UsedRange, а "объявление перепишем":
[vba]
Code

Sheets(1).UsedRange.EntireColumn.AutoFit
[/vba]
Quote (RAN)

Для столбцов с 1 по 6 можно записать так
[vba]
Code

Sheets(1).Columns(1:6).AutoFit
[/vba]

Нельзя. На несколько колонок/строк можно ссылаться либо Sheets(1).Columns("A:F"), либо Sheets(1).Rows("1:6"). Без кавычек числовым индексом можно ссылаться только на единичную колонку или строку: Columns(1), Rows(5). Ну и как частный случай кавычек можно также Columns("A") и Rows("5").

Автор - Gustav
Дата добавления - 09.06.2012 в 11:10
Gustav Дата: Суббота, 09.06.2012, 11:42 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2770
Репутация: 1140 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Quote (Pelena)
То есть в контексте ширины столбца, в общем-то не важно, пишу я Range("B2:K4").Columns.AutoFit или Range("B2:K4").EntireColumn.AutoFit ?

Pelena, на практике, как правило, не важно, но отличие есть и знать его нужно. А нюанс в следующем. Допустим в ячейках B2:B4 - строки по 3 символа, а в ячейке B5 (т.е. уже за пределами нашего диапазона) - строка 30 символов. Тогда Range("B2:K4").Columns.AutoFit сделает ширину всей колонки B равной 3 символам, в то время как Range("B2:K4").EntireColumn.AutoFit расширит колонку B до 30 символов.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Quote (Pelena)
То есть в контексте ширины столбца, в общем-то не важно, пишу я Range("B2:K4").Columns.AutoFit или Range("B2:K4").EntireColumn.AutoFit ?

Pelena, на практике, как правило, не важно, но отличие есть и знать его нужно. А нюанс в следующем. Допустим в ячейках B2:B4 - строки по 3 символа, а в ячейке B5 (т.е. уже за пределами нашего диапазона) - строка 30 символов. Тогда Range("B2:K4").Columns.AutoFit сделает ширину всей колонки B равной 3 символам, в то время как Range("B2:K4").EntireColumn.AutoFit расширит колонку B до 30 символов.

Автор - Gustav
Дата добавления - 09.06.2012 в 11:42
RAN Дата: Суббота, 09.06.2012, 12:04 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Погорячился! sad


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПогорячился! sad

Автор - RAN
Дата добавления - 09.06.2012 в 12:04
Gustav Дата: Суббота, 09.06.2012, 12:17 | Сообщение № 14
Группа: Админы
Ранг: Участник клуба
Сообщений: 2770
Репутация: 1140 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Quote (RAN)
Погорячился!

Да ладно! smile Признаюсь, я сам когда-то, когда эту премудрость постигал, то далеко не сразу допёр, что вместо Columns(1:6) или Columns("1:6"), которые не катили, надо буквы попробовать...


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Quote (RAN)
Погорячился!

Да ладно! smile Признаюсь, я сам когда-то, когда эту премудрость постигал, то далеко не сразу допёр, что вместо Columns(1:6) или Columns("1:6"), которые не катили, надо буквы попробовать...

Автор - Gustav
Дата добавления - 09.06.2012 в 12:17
RAN Дата: Суббота, 09.06.2012, 13:11 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А я знал, да погорячился. smile


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА я знал, да погорячился. smile

Автор - RAN
Дата добавления - 09.06.2012 в 13:11
Pelena Дата: Суббота, 09.06.2012, 18:50 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 19338
Репутация: 4519 ±
Замечаний: ±

Excel 365 & Mac Excel
Gustav, RAN, я получила исчерпывающий ответ на свой вопрос, узнала много нового и полезного.
Макрорекодер мне точно не смог бы так помочь smile
Спасибо


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеGustav, RAN, я получила исчерпывающий ответ на свой вопрос, узнала много нового и полезного.
Макрорекодер мне точно не смог бы так помочь smile
Спасибо

Автор - Pelena
Дата добавления - 09.06.2012 в 18:50
RAN Дата: Суббота, 09.06.2012, 19:39 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Pelena, всегда рады! prof smile


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение Pelena, всегда рады! prof smile

Автор - RAN
Дата добавления - 09.06.2012 в 19:39
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!