Autofit (Columns.EntireColumn.AutoFit) does not work

  • Thread starter Michiel via OfficeKB.com
  • Start date
M

Michiel via OfficeKB.com

Anyone,

I have written a sub that does the following:
1) Add a new sheet to a workbook
2) Import a textfile into that worksheet
3) Performs an autofit to the columns with the imported data (Columns.
EntireColumn.AutoFit)

The last step does not seem to work. The line is executed but the column
width does not change.

If I run through it in debug mode and perform the Columns.EntireColumn.
AutoFit command in the Immediate window nothing happens either.

If I allow the code to finish (the "Columns.EntireColumn.AutoFit" was the
last command in that sub) and then appy the Columns.EntireColumn.AutoFit in
the Immediate window it works perfectly.

I checked the application.screenupdating parameter. It is TRUE. I also tried
adding a DoEventscommand after the Columns.EntireColumn.AutoFit but nothing
works.

What can be happening here? And how do I force Excel to compy to my commands?

M.
 
K

Kevin B

The code did not specify the columns to adjust, try something along the lines
of the following:

ActiveSheet.Columns("A:F").EntireColumn.AutoFit
 
K

Kevin B

You can use the following FOR loop to get all the columns if you're not sure
what columns need to be adjusted:

Sub AllColWid()

Dim i As Integer

Application.ScreenUpdating = False
For i = 1 To 256
ActiveSheet.Columns(i).EntireColumn.AutoFit
Next i
Application.ScreenUpdating = True


End Sub
 
M

Michiel via OfficeKB.com

Hi Kevin,

Columns.EntireColumn.AutoFit command should work.

But you know, you still gave me the solution to the problem.
Apparently excel was noit able todetermine what Sheet I meant, despite the
fact that I selected it in the preceeding step.

Adding ActiveSheet (like you did) to the command solved the issue!

So, the correct line is:

ActiveSheet.Columns.EntireColumn.AutoFit

THANKS!!!!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top