2011-09-15 87 views
4

以下代碼選擇工作表,但未能將單元格居中。VBA Excel VerticalAlignment = xlCenter不工作

   wb.Sheets(1).Columns("A:L").Select 
       With Selection 
        .VerticalAlignment = xlCenter 
       End With 

謝謝!

wb.Sheets(1).Activate 
wb.Sheets(1).Columns("A:L").Select 
With Selection 
    .VerticalAlignment = xlCenter 
End With 

選擇整個工作表,但不會將垂直對齊更改爲居中。

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter 

什麼都不做。

我不想的Horizo​​ntalAlignment :)

我發現了專欄VerticalAlignment設置xlCenter但該列下面的單元格沒有VerticalAlignment設置爲xlCenter。

+0

我們需要更多信息;這對我有用。你可能打算使用'Horizo​​ntalAlignment'而不是'VerticalAlignment'? – Jay

+1

只要'wb.Sheets(1)'是活動工作表,這段代碼就會工作,否則它將失敗。我對這個問題大加讚賞,因爲這是人們學習通過錄制宏來編程VBA的常見陷阱。 – adamleerich

+0

你確定要'VerticalAlignment'而不是'Horizo​​ntalAlignment'嗎?只是檢查 – PaulStock

回答

12

不要SelectSelection沒有理由不工作。這是錄音機的東西。讀取時間更長,執行速度更慢,並且容易出錯。

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter好得多。

如果你需要做幾件事情用相同的範圍,然後使用

with wb.Sheets(1).Columns("A:L") 
     .VerticalAlignment = xlCenter 
     .somethingElse 
End with 
3

這是新學習Excel對象模型的常見錯誤。每個工作表必須具有當前選定範圍,但Selection始終指向活動工作表上的選定範圍。您必須將.Activate表中選定範圍的一張表作爲Selection對象。

wb.Sheets(1).Activate 
wb.Sheets(1).Columns("A:L").Select 
With Selection 
    .VerticalAlignment = xlCenter 
End With 

或者你可以改變你的代碼,不依賴於Selection對象:

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter 
1

更換.VerticalAlignment = xlCenter.HorizontalAlignment = xlCenter