Столбец ширина по ячейке Excel Макрос VBA — Excel VBA программы, макросы

Office VBA reference topic

Синтаксис

выражения. ColumnWidth

выражение: переменная, представляющая объект Range.

Одна единица ширины столбца равна ширине одного символа в стиле Normal. Для пропорциональных шрифтов используется ширина символа 0 (ноль).

Используйте метод AutoFit для набора ширин столбцов в зависимости от содержимого ячеек.

Чтобы вернуть ширину столбца в точках, используйте свойство Width.

Если все столбцы в диапазоне имеют ту же ширину, свойство ColumnWidth возвращает ширину. Если столбцы в диапазоне имеют разную ширину, это свойство возвращает null.

VBA-макрос: заливка, шрифт, линии границ, ширина столбцов и высота строк

В процессе запыления данных сотрудниками отдела на некоторых листах были изменены форматы ячеек:

запыления планов работ.

Необходимо сбросить форматирование ячеек и сделать так чтобы на всех таблицах планов выполнения работ были одинаковые форматы отображения данных. Формат ячеек для исходной таблицы должен быть закреплен за шаблоном, чтобы можно было сделать сброс и применять заданный стиль оформления в дальнейшем.

Чтобы выполнять такие задачи вручную можно попытаться облегчить процесс настройки множества опций форматирования для многих диапазонов ячеек на разных листах и рабочих книгах. Плюс к о всему можно ошибиться и применить несколько другие настройки форматирования.

Макросы Excel прекрасно справляются с форматированием ячеек на рабочих листах. Кроме того, делают это быстро и в полностью автоматическом режиме. Воспользуемся этими преимуществами и для решения данной задачи напишем свой код VBA-макроса. Он поможет нам быстро и безопасно сбрасывать форматы на исходный предварительно заданный в шаблоне главной таблицы.

Чтобы написать свой код макроса откройте специальный VBA-редактор в Excel: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» или нажмите комбинацию клавиш ALT+F11:

Код Visual Basic.

В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него такой VBA-код макроса:

Sub SbrosFormat()
If TypeName(Selection) <> “Range” Then Exit Sub
With Selection
.HorizontalAlignment = xlVAlignCenter
.VerticalAlignment = xlVAlignCenter
.WrapText = True
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexAutomatic
.Columns.AutoFit
.Rows.AutoFit

End WithEnd Sub

VBA-код макроса.

Теперь если нам нужно сбросить форматирование таблицы на исходный формат отображения ее данных, выделите диапазон ячеек A1:E20 и запустите макрос: «РАЗРАБОЧТИК»-«Код»-«Макросы»-«SbrosFormat»-«Выполнить». Результат работы макроса изображен ниже на рисунке:

сбросить форматирование таблицы на исходный формат.

Таблица приобрела формат, который определен макросом. Таким образом код VBA нам позволяет сбросить любые изменения формата ячеек на предустановленный автором отчета.

The following VBA and Macro Tutorials may help you better understand and implement the contents below:

  • General VBA constructs and structures:
    • Learn about using variables here.
    • Learn about VBA data types here.
    • Learn about R1C1 and A1 style references here.
  • Practical VBA applications and macro examples:
    • Learn how to work with worksheets here.
    • Learn how to delete columns here.
    • Learn how to hide or unhide rows and columns here.

You can find additional VBA and Macro Tutorials in the Archives.

Опубликовано InExSu

Автоматизация задач Смотреть все записи автора InExSu

2 ответов

вы можете сделать это с помощью AutoFit.Такой

Columns(“A:B”).SelectSelection.EntireColumn.AutoFit

вы можете выполнить следующее:

Columns(“A”).Autofit

#1: Set Column Width

VBA Code to Set Column Width

To set the width of a column with VBA, use a statement with the following structure:

Worksheet.Range(“A1CellReference”).ColumnWidth = ColumnWidthUnits

Process Followed by VBA Code

Identify cell in column to set width for data-srcset= Specify column width in units” width=”316″ height=”102″>

VBA Statement Explanation

  1. Item: Worksheet.
    • VBA Construct: Workbook.Worksheets property.
    • Description: Returns a Worksheet object representing the worksheet you work with.
  2. Item: Range(“A1CellReference”).
    • VBA Construct: Worksheet.Range property.
    • Description: Returns a Range object representing a cell within the column whose width you set. You specify the cell using an A1-style cell reference (A1CellReference) enclosed within quotations (“”).
  3. Item: ColumnWidth.
    • VBA Construct: Range.ColumnWidth property.
    • Description: Sets the width of the column containing the Range object returned by item #2 above.
  4. Item: ColumnWidthUnits.
    • VBA Construct: New value of the Range.ColumnWidth property.
    • Description: Specifies the width, in units, of the column containing the Range object returned by item #2 above.
      • Column width isn’t measured in points, centimeters or inches. Excel measures column width units based on the size (width) of the font you use in the Normal style (for example, Calibri 11).
      • Therefore, 1 unit of column width is equal to 1 character of the Normal style font. Consider the following:
        • If your Normal style font is a fixed-width font, such as Courier New or Consolas, all characters have the same width.
        • If your Normal style font is a proportional font, Excel considers the width of the character “0” (the number zero).
      • If you explicitly declare a variable to represent ColumnWidthUnits, use a numeric data type that can handle the value you use to specify the column width in the appropriate units.

Macro Example

The following macro sets the width of column A of the worksheet named “Column width” to 15 units.

Sub columnWidth() ‘Source: https://powerspreadsheets.com/ ‘For further information: https://powerspreadsheets.com/excel-vba-column-width/ Worksheets(“Column width”).Range(“A5”).columnWidth = 15End Sub

Effects of Executing Macro Example

The following GIF illustrates the results of executing this macro example. As expected, VBA sets the width of column A to 15 units.

Macro sets column width

Set Row Height with VBA

Macro to set the row height of Row 1:

SubRowHeight()

    Rows(“1:1”).RowHeight=30

EndSub

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...