Других ответов правильно утверждать, что Автоподбор должен использоваться с колонкой, а не только клетка. Однако есть некоторые нюансы использования AutoFit, которые я не понял, пока не начал экспериментировать.
В любом из первых двух утверждений ниже будет использоваться все значения в столбце C для автоматической установки ширины столбца. Это означает, что если в некоторой другой ячейке в столбце C (например, C10) есть значение, которое больше, чем значение в C5, оно будет соответствовать столбцу самой широкой ячейке в столбце C (например, C10).
Range("C5").EntireColumn.AutoFit ' Will fit to widest cell in column
Range("C:C").AutoFit ' Will fit to widest cell in column
Если вы хотите просто подходят колонки на 1 ячейку (или определенный диапазон ячеек, но не весь столбец или столбцы), используйте оператор вроде этого:
Range("C5").Columns.AutoFit ' Will fit column C to width of cell C5
И, конечно, это всегда лучше, форма для написания кода, как это, когда вы можете:
- Полностью квалифицируйте диапазон, если вы абсолютно уверены, что будете работать только с одним листом
- Используйте объекты Named Ranges или Range.
Например:
Workbooks("MyWorkbook.xlsm").Sheets("Sheet1").Range("MyData").Columns.AutoFit
' or
Set AutoFitRange = Workbooks("MyWorkbook.xlsm").Sheets("Sheet1").Range("C5")
AutoFitRange.Columns.AutoFit
Не могли бы вы попробовать переоснащение весь столбец вместо конкретной ячейки. 'Столбцы (« C: C »). AutoFit' – izzymo