Remkomplekty.ru

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel column width

Change the column width and row height

If you find yourself needing to expand or reduce Excel’s row widths and column heights, there are several ways to adjust them. The table below shows the minimum, maximum and default sizes for each based on a point scale.

If you are working in Page Layout view (View tab, Workbook Views group, Page Layout button), you can specify a column width or row height in inches, centimeters and millimeters. The measurement unit is in inches by default. Go to File > Options > Advanced > Display > select an option from the Ruler Units list. If you switch to Normal view, then column widths and row heights will be displayed in points.

Individual rows and columns can only have one setting. For example, a single column can have a 25 point width, but it can’t be 25 points wide for one row, and 10 points for another.

Set a column to a specific width

Select the column or columns that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click Column Width.

In the Column width box, type the value that you want.

Tip: To quickly set the width of a single column, right-click the selected column, click Column Width, type the value that you want, and then click OK.

Select the column or columns that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click AutoFit Column Width.

Note: To quickly autofit all columns on the worksheet, click the Select All button, and then double-click any boundary between two column headings.

Select a cell in the column that has the width that you want to use.

Press Ctrl+C, or on the Home tab, in the Clipboard group, click Copy.

Right-click a cell in the target column, point to Paste Special, and then click the Keep Source Columns Widths button.

The value for the default column width indicates the average number of characters of the standard font that fit in a cell. You can specify a different number for the default column width for a worksheet or workbook.

Do one of the following:

To change the default column width for a worksheet, click its sheet tab.

To change the default column width for the entire workbook, right-click a sheet tab, and then click Select All Sheets on the shortcut menu.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click Default Width.

In the Standard column width box, type a new measurement, and then click OK.

Tips: If you want to define the default column width for all new workbooks and worksheets, you can create a workbook template or a worksheet template, and then base new workbooks or worksheets on those templates. See the following links for more information:

Do one of the following:

To change the width of one column, drag the boundary on the right side of the column heading until the column is the width that you want.

To change the width of multiple columns, select the columns that you want to change, and then drag a boundary to the right of a selected column heading.

To change the width of columns to fit the contents, select the column or columns that you want to change, and then double-click the boundary to the right of a selected column heading.

To change the width of all columns on the worksheet, click the Select All button, and then drag the boundary of any column heading.

Select the row or rows that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click Row Height.

In the Row height box, type the value that you want, and then click OK.

Select the row or rows that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click AutoFit Row Height.

Tip: To quickly autofit all rows on the worksheet, click the Select All button, and then double-click the boundary below one of the row headings.

Do one of the following:

To change the row height of one row, drag the boundary below the row heading until the row is the height that you want.

To change the row height of multiple rows, select the rows that you want to change, and then drag the boundary below one of the selected row headings.

To change the row height for all rows on the worksheet, click the Select All button, and then drag the boundary below any row heading.

To change the row height to fit the contents, double-click the boundary below the row heading.

If you prefer to work with column widths and row heights in inches, you should work in Page Layout view (View tab, Workbook Views group, Page Layout button). In Page Layout view, you can specify a column width or row height in inches. In this view, inches are the measurement unit by default, but you can change the measurement unit to centimeters or millimeters.

In Excel 2007, click the Microsoft Office Button > Excel Options> Advanced.

In Excel 2010, go to File > Options > Advanced.

Set a column to a specific width

Select the column or columns that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click Column Width.

In the Column width box, type the value that you want.

Select the column or columns that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click AutoFit Column Width.

Tip To quickly autofit all columns on the worksheet, click the Select All button and then double-click any boundary between two column headings.

Select a cell in the column that has the width that you want to use.

On the Home tab, in the Clipboard group, click Copy, and then select the target column.

On the Home tab, in the Clipboard group, click the arrow below Paste, and then click Paste Special.

Under Paste, select Column widths.

The value for the default column width indicates the average number of characters of the standard font that fit in a cell. You can specify a different number for the default column width for a worksheet or workbook.

Do one of the following:

To change the default column width for a worksheet, click its sheet tab.

To change the default column width for the entire workbook, right-click a sheet tab, and then click Select All Sheets on the shortcut menu.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click Default Width.

In the Default column width box, type a new measurement.

Tip If you want to define the default column width for all new workbooks and worksheets, you can create a workbook template or a worksheet template, and then base new workbooks or worksheets on those templates. For more information, see Save a workbook or worksheet as a template.

Do one of the following:

To change the width of one column, drag the boundary on the right side of the column heading until the column is the width that you want.

To change the width of multiple columns, select the columns that you want to change, and then drag a boundary to the right of a selected column heading.

To change the width of columns to fit the contents, select the column or columns that you want to change, and then double-click the boundary to the right of a selected column heading.

Читать еще:  Линейн в excel пример

To change the width of all columns on the worksheet, click the Select All button, and then drag the boundary of any column heading.

Select the row or rows that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click Row Height.

In the Row height box, type the value that you want.

Select the row or rows that you want to change.

On the Home tab, in the Cells group, click Format.

Under Cell Size, click AutoFit Row Height.

Tip To quickly autofit all rows on the worksheet, click the Select All button and then double-click the boundary below one of the row headings.

Do one of the following:

To change the row height of one row, drag the boundary below the row heading until the row is the height that you want.

To change the row height of multiple rows, select the rows that you want to change, and then drag the boundary below one of the selected row headings.

To change the row height for all rows on the worksheet, click the Select All button, and then drag the boundary below any row heading.

To change the row height to fit the contents, double-click the boundary below the row heading.

Программно задать ширину столбца Excel в пикселах (Width, ColumnWidth)

Как программно (макросом) задать ширину столбца в пикселах

Вроде бы — элементарное действие. но нет, здесь Microsoft нам усложнил задачу.

Получить ширину столбца в пикселах — не проблема, для этого есть свойство Width:

Но, увы, это свойство доступно только для чтения, — а для назначения ширины столбца нам придётся изменять значение другого свойства — ColumnWidth, которое задаётся отнюдь не в пикселах, а в символах (количестве знаков, которые поместятся в ячейке)

Результат — мы не можем со 100% точностью задать ширину столбца, чтобы она была равна заданному количеству пикселей.

Стал искать решение проблемы на сайте Microsoft — и увидел чудный макрос, который сначала ставит приблизительную ширину, и потом В ЦИКЛЕ подгоняет (увеличивает или уменьшает) значение ширины, до тех пор, пока результат не приблизитс к ожидаемому.

Я и сам пользовался подобным решением — для макроса вставки картинок в Excel, но когда пришла пора реализовать то же самое в универсальной программе для вставки изображений в Excel, понял, что надо искать более удобный способ

К тому же, подбор ширины столбца в цикле — очень медленный способ.

И вот что получилось:

Запустив этот макрос, вы увидите, что установленная ширина столбца почти совпадает с исходной.

Небольшое расхождение обычно некритично (всё-таки, Excel — это не графический редактор, где важна точность)

Еще один макрос — для тестирования применённого способа перевода Width в ColumnWidth:

Результат работы этого макроса:

Желаемая ширина = 3 полученная ширина = 3 ColumnWidth (в символах) = 0,33 совпадение = 100,00%
Желаемая ширина = 5 полученная ширина = 5,25 ColumnWidth (в символах) = 0,56 совпадение = 105,00%
Желаемая ширина = 7 полученная ширина = 6,75 ColumnWidth (в символах) = 0,78 совпадение = 96,43%
Желаемая ширина = 9 полученная ширина = 9 ColumnWidth (в символах) = 1,00 совпадение = 100,00%
Желаемая ширина = 11 полученная ширина = 11,25 ColumnWidth (в символах) = 1,38 совпадение = 102,27%
Желаемая ширина = 13 полученная ширина = 12,75 ColumnWidth (в символах) = 1,76 совпадение = 98,08%
Желаемая ширина = 15 полученная ширина = 15 ColumnWidth (в символах) = 2,14 совпадение = 100,00%
Желаемая ширина = 17 полученная ширина = 17,25 ColumnWidth (в символах) = 2,52 совпадение = 101,47%
Желаемая ширина = 19 полученная ширина = 18,75 ColumnWidth (в символах) = 2,90 совпадение = 98,68%
Желаемая ширина = 21 полученная ширина = 21 ColumnWidth (в символах) = 3,29 совпадение = 100,00%
Желаемая ширина = 23 полученная ширина = 23,25 ColumnWidth (в символах) = 3,67 совпадение = 101,09%
Желаемая ширина = 25 полученная ширина = 24,75 ColumnWidth (в символах) = 4,05 совпадение = 99,00%
Желаемая ширина = 27 полученная ширина = 27 ColumnWidth (в символах) = 4,43 совпадение = 100,00%
Желаемая ширина = 29 полученная ширина = 29,25 ColumnWidth (в символах) = 4,81 совпадение = 100,86%
Желаемая ширина = 31 полученная ширина = 30,75 ColumnWidth (в символах) = 5,19 совпадение = 99,19%
Желаемая ширина = 33 полученная ширина = 33 ColumnWidth (в символах) = 5,57 совпадение = 100,00%
Желаемая ширина = 35 полученная ширина = 35,25 ColumnWidth (в символах) = 5,95 совпадение = 100,71%
Желаемая ширина = 37 полученная ширина = 36,75 ColumnWidth (в символах) = 6,33 совпадение = 99,32%
Желаемая ширина = 39 полученная ширина = 39 ColumnWidth (в символах) = 6,71 совпадение = 100,00%
Желаемая ширина = 41 полученная ширина = 41,25 ColumnWidth (в символах) = 7,10 совпадение = 100,61%
Желаемая ширина = 43 полученная ширина = 42,75 ColumnWidth (в символах) = 7,48 совпадение = 99,42%
Желаемая ширина = 45 полученная ширина = 45 ColumnWidth (в символах) = 7,86 совпадение = 100,00%
Желаемая ширина = 47 полученная ширина = 47,25 ColumnWidth (в символах) = 8,24 совпадение = 100,53%
Желаемая ширина = 49 полученная ширина = 48,75 ColumnWidth (в символах) = 8,62 совпадение = 99,49%
Желаемая ширина = 51 полученная ширина = 51 ColumnWidth (в символах) = 9,00 совпадение = 100,00%
Желаемая ширина = 53 полученная ширина = 53,25 ColumnWidth (в символах) = 9,38 совпадение = 100,47%
Желаемая ширина = 55 полученная ширина = 54,75 ColumnWidth (в символах) = 9,76 совпадение = 99,55%
Желаемая ширина = 57 полученная ширина = 57 ColumnWidth (в символах) = 10,14 совпадение = 100,00%
Желаемая ширина = 59 полученная ширина = 59,25 ColumnWidth (в символах) = 10,52 совпадение = 100,42%
Желаемая ширина = 61 полученная ширина = 60,75 ColumnWidth (в символах) = 10,90 совпадение = 99,59%
Желаемая ширина = 63 полученная ширина = 63 ColumnWidth (в символах) = 11,29 совпадение = 100,00%
Желаемая ширина = 65 полученная ширина = 65,25 ColumnWidth (в символах) = 11,67 совпадение = 100,38%
Желаемая ширина = 67 полученная ширина = 66,75 ColumnWidth (в символах) = 12,05 совпадение = 99,63%
Желаемая ширина = 69 полученная ширина = 69 ColumnWidth (в символах) = 12,43 совпадение = 100,00%
Желаемая ширина = 71 полученная ширина = 71,25 ColumnWidth (в символах) = 12,81 совпадение = 100,35%
Желаемая ширина = 73 полученная ширина = 72,75 ColumnWidth (в символах) = 13,19 совпадение = 99,66%
Желаемая ширина = 75 полученная ширина = 75 ColumnWidth (в символах) = 13,57 совпадение = 100,00%
Желаемая ширина = 77 полученная ширина = 77,25 ColumnWidth (в символах) = 13,95 совпадение = 100,32%
Желаемая ширина = 79 полученная ширина = 78,75 ColumnWidth (в символах) = 14,33 совпадение = 99,68%
Желаемая ширина = 81 полученная ширина = 81 ColumnWidth (в символах) = 14,71 совпадение = 100,00%
Желаемая ширина = 83 полученная ширина = 83,25 ColumnWidth (в символах) = 15,10 совпадение = 100,30%
Желаемая ширина = 85 полученная ширина = 84,75 ColumnWidth (в символах) = 15,48 совпадение = 99,71%
Желаемая ширина = 87 полученная ширина = 87 ColumnWidth (в символах) = 15,86 совпадение = 100,00%
Желаемая ширина = 89 полученная ширина = 89,25 ColumnWidth (в символах) = 16,24 совпадение = 100,28%
Желаемая ширина = 91 полученная ширина = 90,75 ColumnWidth (в символах) = 16,62 совпадение = 99,73%
Желаемая ширина = 93 полученная ширина = 93 ColumnWidth (в символах) = 17,00 совпадение = 100,00%
Желаемая ширина = 95 полученная ширина = 95,25 ColumnWidth (в символах) = 17,38 совпадение = 100,26%
Желаемая ширина = 97 полученная ширина = 96,75 ColumnWidth (в символах) = 17,76 совпадение = 99,74%
Желаемая ширина = 99 полученная ширина = 99 ColumnWidth (в символах) = 18,14 совпадение = 100,00%
Желаемая ширина = 101 полученная ширина = 101,25 ColumnWidth (в символах) = 18,52 совпадение = 100,25%
Желаемая ширина = 103 полученная ширина = 102,75 ColumnWidth (в символах) = 18,90 совпадение = 99,76%
Желаемая ширина = 105 полученная ширина = 105 ColumnWidth (в символах) = 19,29 совпадение = 100,00%
Желаемая ширина = 107 полученная ширина = 107,25 ColumnWidth (в символах) = 19,67 совпадение = 100,23%
Желаемая ширина = 109 полученная ширина = 108,75 ColumnWidth (в символах) = 20,05 совпадение = 99,77%
Желаемая ширина = 111 полученная ширина = 111 ColumnWidth (в символах) = 20,43 совпадение = 100,00%
Желаемая ширина = 113 полученная ширина = 113,25 ColumnWidth (в символах) = 20,81 совпадение = 100,22%
Желаемая ширина = 115 полученная ширина = 114,75 ColumnWidth (в символах) = 21,19 совпадение = 99,78%
Желаемая ширина = 117 полученная ширина = 117 ColumnWidth (в символах) = 21,57 совпадение = 100,00%
Желаемая ширина = 119 полученная ширина = 119,25 ColumnWidth (в символах) = 21,95 совпадение = 100,21%
Желаемая ширина = 121 полученная ширина = 120,75 ColumnWidth (в символах) = 22,33 совпадение = 99,79%
Желаемая ширина = 123 полученная ширина = 123 ColumnWidth (в символах) = 22,71 совпадение = 100,00%

How to change column width and AutoFit columns in Excel

by Svetlana Cheusheva | updated on August 9, 2018 13 Comments

In this short tutorial, you will learn a few efficient ways to change the column width manually and have it adjusted automatically to fit the contents (AutoFit).

Changing the width of a column in Excel is one of the most common tasks that you perform daily when designing your reports, summary tables or dashboards, and even when using worksheets only to store or calculate data.

Читать еще:  Vba excel адрес выделенной ячейки

Microsoft Excel provides a variety of ways to manipulate the column width — you can resize columns using the mouse, set the width to a specific number or have it adjusted automatically to accommodate the data. Further on in this tutorial, you will find the detailed information about all these methods.

Excel column width

On an Excel spreadsheet, you can set a column width of 0 to 255, with one unit equal to the width of one character that can be displayed in a cell formatted with the standard font. On a new worksheet, the default width of all columns is 8.43 characters, which corresponds to 64 pixels. If a column’s width is set to zero (0), the column is hidden.

To view the current width of a column, click on the right boundary of the column header, and Excel will display the width for you:

Columns in Excel do not resize automatically as you input data in them. If the value in a certain cell is too large to fit in the column, it extends over the column’s border and overlaps the next cell. If the column to the right contains data, then a text string is cut off at the cell border and a numerical value (number or date) is replaced with a sequence of hash symbols (######) like shown in the screenshot below:

If you want the information in all cells to be readable, you can either wrap text or adjust column width.

How to change the width of a column in Excel using the mouse

I believe everyone knows the most common way to make a column wider or narrower by dragging the border of the column header to the right or to the left. What you might not know is that using this method you can adjust the width of several columns or all columns on the sheet at a time. Here’s how:

  • To change the width of a single column, drag the right border of the column heading until the column is set to the desired width.
  • To change the width of multiple columns, select the columns of interest and drag the border of any column heading in the selection.
  • To make all columns the same width, select the entire sheet by pressing Ctrl + A or clicking the Select All button , and then drag the border of any column header.

How to set column width to a certain number

As explained at the beginning of this tutorial, the Excel column width value represents the number of characters that can be accommodated in a cell formatted with the standard font. To resize columns numerically, i.e. specify an average number of characters to be displayed in a cell, do the following:

  1. Select one or more columns that you wish to resize. To select all columns, press Ctrl + A or click the Select All button.
  2. On the Home tab, in the Cells group, click Format >Column Width.
  3. In the Column width box, type the desired number, and click OK.

How to AutoFit columns in Excel

In your Excel worksheets, you can also auto fit columns so that they get wider or narrower to fit the largest value in the column.

  • To autofit a singlecolumn, hover the mouse pointer over the right border of the column header until the double-headed arrow appears, and then double click the border.
  • To autofit multiple columns, select them, and double click any boundary between two column headers in the selection.
  • To force all columns on the sheet to automatically fit their contents, press Ctrl + A or click the Select All button, and then double click a boundary of any column header.

Another way to autofit columns in Excel is by using the ribbon: select one or more columns, go to the Home tab > Cells group, and click Format > AutoFit Column Width.

How to set the column width in inches

When preparing a worksheet for printing, you may want to fix the column width in inches, centimeters or millimeters.

To have it done, switch to the Page Layout view by going to the View tab > Workbook Views group and clicking the Page Layout button:

Select one, several or all columns on the sheet, and drag the right boundary of any of the selected column headings until you set the required width. As you drag the boundary, Excel will display the column width in inches like shown in the screenshot below:

With the width fixed, you can exit the Page Layout view by clicking the Normal button on the View tab, in the Workbook Views group.

How to copy the column width in Excel (in the same or to another sheet)

You already know how to make several or all columns on the sheet the same width by dragging the column border. If you have already resized one column the way you want, then you can simply copy that width to other columns. To have it done, please follow the steps outlined below.

  1. Copy any cell from the column that has the desired width. For this, right-click the cell and choose Copy in the context menu or select the cell and press Ctrl + C .
  2. Right-click a cell(s) in the target column(s), and then click Paste Special….
  3. In the Paste Special dialog box, select Column widths, and click OK.

Alternatively, you can select some cells in the target columns, press the Paste Special shortcut Ctrl + Alt + V , and then press W.

The same technique can be used when you create a new sheet and want to make its column widths the same as those in an existing worksheet.

How to change the default column width in Excel

To change the default width for all columns on a worksheet or the entire workbook, just do the following:

  1. Select the worksheet(s) of interest:
    • To select a single sheet, click its sheet tab.
    • To select several sheets, click on their tabs while holding the Ctrl key.
    • To select all sheets in the workbook, right-click any sheet tab, and choose Select All Sheets from the context menu.
  2. On the Home tab, in the Cells group, click Format >Default Width… .
  3. In the Standard column width box, input the value you want, and click OK.

As you see, there exist a handful of different ways to change column width in Excel. Which one to use depends on your preferred work style and situation. I thank you for reading and hope to see you on our blog next week!

Excel column width

Excel supports both proportionally spaced fonts, (like Arial) as well as fixed pitch fonts (like Courier).
Different characters take up different amounts of space.
Be careful as different people creating different workbooks in different fonts will be slightly different when it comes to row heights and column widths.
The standard column width corresponds to the average number of digits which can be contained in a cell according to the font selected.
Assuming that the font is the default (Arial 10) the default column width is 8.43 (64 pixels).
This represents the number of zeros that can be displayed in the column.
This is an approximate width in points the same measurement technique used for font size.

The default font for new workbooks can be changed from the (Tools > Options)(General tab).
The font for an existing workbook can be changed from the (Format > Style > Normal > Modify) dialog box.

Adjusting Column Widths

You can adjust the widths of your columns in various ways:
1) Using the (Format > Column) sub menu.
2) Using the Column shortcut menu.
3) Using the Mouse.

Читать еще:  Пересчет формул в excel

Using the (Format > Column) sub menu

Width — Displays a dialog box letting you define the exact width of the selected columns.

AutoFit Selection — Adjusts the width of all the columns in the selection to accommodate the widest text.
Hide — Adjusts the width of all the columns in the selection to zero.
Unhide — Adjusts the width of all the columns in the selection to ??
Standard Width — Displays a dialog box allowing you to define a different default column width. Just pressing Enter will restore the currently selected columns to there default width.
This width may or may not be 2 decimal places. It depends on what font is being used for the Normal style.
Arial, 10 will display 2 decimal places. Times New Roman, 8 will display 1 decimal place.

Using the Column Shortcut Menu

An alternative to using the (Format > Column) sub menu is to use the Column shortcut menu.
This menu will be displayed if you press the right mouse button when the cursor is over a column heading.

Column Width — Displays a dialog box letting you define the exact width of the selected columns.
Hide — same as above.
Unhide — same as above.

Using the Mouse

The easiest way to change the width of a column is to position the mouse pointer on the line between the columns. The pointer changes to a two way arrow, click and move the mouse to the desired width.
You can drag the mouse to the right to increase the width of your columns or to the left to decrease the width.

As you drag the side of the column the new width and the number of pixels is displayed in a screen tip.

AutoFit the Columns

For more information please refer to the AutoFit Selection page.

Defining Default Column Width

To define the width for a particular column you only need to select one cell in that column.
Defining a default column width has the effect of adjusting all the columns to the same width, except for those previously modified.
If no width appears then more than one column of different widths is selected. You can enter a number between 0 and 255.
(Format > Column > Standard Width)
If no columns are highlighted then all the columns are changed.
To change the standard width for all the default width columns. Enter a value in the standard column width box.
All columns adjust to the new setting except those that have been changed manually.

Locking the Column Widths

Adjust the columns to the width you want to lock them at.
Select (Tools > Protection > Protect Sheet).
Adjusting the width of a column falls under the item «Format Columns».
If this checkbox is not ticked then the column widths cannot be adjusted once the sheet is protected.

Important

This also works with non-contiguous rows or columns by holding down the Ctrl key.
Depending on which font you are using, text may appear to fit within a column on your screen but not when it is printed. You should always check your Print Preview to check.
You can change the widths of all the columns on a worksheet by selecting any row and selecting (Format > Column > Width).

Подбор высоты строки/ширины столбца объединенной ячейки

Для начала немного теории. Если в ячейках листа Excel записан некий длинный текст, то обычно устанавливают перенос на строки(вкладка Главная -группа ВыравниваниеПеренос текста), чтобы текст не растягивался на весь экран, а умещался в ячейке. При этом высота ячейки тоже должна измениться, чтобы отобразить все содержимое. Если речь идет всего об одной простой ячейке — проблем не возникает. Обычно, чтобы установить высоту строки на основании содержимого ячейки, достаточно навести курсор мыши в заголовке строк на границу строки(курсор приобретет вид направленных в разные стороны стрелок — ) и дважды быстро щелкнуть левой кнопкой мыши. Тоже самое можно сделать и для ширины столбцов.
Но с объединенными ячейками такой фокус не прокатывает — ширина и высота для этих ячеек так не подбирается, сколько ни щелкай и приходится вручную подгонять каждую, чтобы текст ячейки отображался полностью:

Стандартными средствами такой автоподбор не сделать, но вот при помощи VBA — без проблем. Ниже приведена функция, которая поможет подобрать высоту и ширину объединенных ячеек на основании их содержимого.

‘————————————————————————————— ‘ Procedure : RowHeightForContent ‘ Author : The_Prist(Щербаков Дмитрий) ‘ http://www.excel-vba.ru ‘ Purpose : Функция подбирает высоту строки/ширину столбца объединенных ячеек по содержимому ‘————————————————————————————— Function RowColHeightForContent(rc As Range, Optional bRowHeight As Boolean = True) ‘rc — ячейка, высоту строки или ширину столбца которой необходимо подобрать ‘bRowHeight — True — если необходимо подобрать высоту строки ‘ False — если необходимо подобрать ширину столбца Dim OldR_Height As Single, OldC_Widht As Single Dim MergedR_Height As Single, MergedC_Widht As Single Dim CurrCell As Range Dim ih As Integer Dim iw As Integer Dim NewR_Height As Single, NewC_Widht As Single Dim ActiveCellHeight As Single If rc.MergeCells Then With rc.MergeArea ‘если ячейка объединена ‘запоминаем кол-во столбцов iw = .Columns(.Columns.Count).Column — rc.Column + 1 ‘запоминаем кол-во строк. ih = .Rows(.Rows.Count).Row — rc.Row + 1 ‘Определяем высоту и ширину объединения ячеек MergedR_Height = 0 For Each CurrCell In .Rows MergedR_Height = CurrCell.RowHeight + MergedR_Height Next MergedC_Widht = 0 For Each CurrCell In .Columns MergedC_Widht = CurrCell.ColumnWidth + MergedC_Widht Next ‘запоминаем высоту и ширину первой ячейки из объединенных OldR_Height = .Cells(1, 1).RowHeight OldC_Widht = .Cells(1, 1).ColumnWidth ‘отменяем объединение ячеек .MergeCells = False ‘назначаем новую высоту и ширину для первой ячейки .Cells(1).RowHeight = MergedR_Height .Cells(1, 1).EntireColumn.ColumnWidth = MergedC_Widht ‘если необходимо изменить высоту строк If bRowHeight Then ‘.WrapText = True ‘раскомментировать, если необходимо принудительно выставлять перенос текста .EntireRow.AutoFit NewR_Height = .Cells(1).RowHeight ‘запоминаем высоту строки .MergeCells = True If OldR_Height ‘ .WrapText = True ‘раскомментировать, если необходимо принудительно выставлять перенос текста тогда код сам проставит переносы. Но тут следует учитывать, что в данном случае перенос будет выставлен для всех ячеек, что не всегда отвечает условиям

  • функция подбирает высоту и ширину исключительно для объединенных ячеек. Если ячейка не объединена — код оставит её без изменений
  • Теперь о том, как это работает и как применять. Для начала необходимо приведенный выше код функции вставить в стандартный модуль. Сама по себе функция работать не будет — её надо вызывать из другого кода, который определяет какие ячейки обрабатывать. В качестве такого кода я предлагаю следующий:

    Sub ChangeRowColHeight() Dim rc As Range Dim bRow As Boolean bRow = (MsgBox(«Изменять высоту строк?», vbQuestion + vbYesNo, «www.excel-vba.ru») = vbYes) ‘bRow = True: для изменения высоты строк ‘bRow = False: для изменения ширины столбцов Application.ScreenUpdating = False For Each rc In Selection RowColHeightForContent rc, bRow Next Application.ScreenUpdating = True End Sub

    Этот код также необходимо вставить в стандартный модуль. Теперь его можно будет вызвать из этой книги, нажатием клавиш Alt+F8 и выбрав ChangeRowColHeight , или создав на листе кнопку и назначив ей макрос. После этого достаточно будет выделить диапазон ячеек, среди которых есть объединенные и вызвать макрос ChangeRowColHeight. Для всех объединенных ячеек в выделенном диапазоне будет подобрана высота или ширина.
    Чтобы было нагляднее — я приложил пример, в котором помимо самих кодов есть вырезка из стандартной накладной. Именно в таких документах наиболее часто встречаются подобные казусы и необходимость подбирать высоту и ширину объединенных ячеек.
    Скачать пример:

    Tips_Macro_HeightWidthInMergeCell.xls (64,0 KiB, 1 839 скачиваний)

    Если подобную операцию приходится производить постоянно — советую коды записать в надстройку: Как создать свою надстройку?. Так же можно воспользоваться уже готовым решением в составе MulTEx — Высота/Ширина объединенной ячейки.

    Статья помогла? Поделись ссылкой с друзьями!

    Поиск по меткам

    Поделитесь своим мнением

    Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×