2012-03-29 115 views
4

我厭倦了合併的單元格。他們只是不工作。如何避免在Excel中垂直合併單元格?

所以我找到了一種避免水平合併單元格的方法,當時我只需要將文本居中放置在多個列中。那是:Range("A1:C1").HorizontalAlignment = xlCenterAcrossSelection

它就像一個魅力。這是完美的。這正是我需要的。

我非常天真地認爲你可以垂直做同樣的事情,將文本置於多行中心。例如:Range("A1:A3").VerticalAlignment = xlCenterAcrossSelection

但是,唉,這是行不通的。

我錯過了這裏的東西,還是Excel開發人員真的認爲,雖然在列對齊是一個共同的協議,集中在行是非常愚蠢的想法,沒有人會做到這一點,所以爲什麼還要麻煩?

+0

我很抱歉,但沒有標準的方法來垂直居中。正如您在選取單元格並打開「單元格格式」對話框時看到的那樣。在垂直對齊下拉列表中,您無法垂直居中橫跨。 – JMax 2012-03-29 13:37:55

+0

是的,我認爲沒有「標準」方式可用。也許有人有更復雜的解決方法? – Bruder 2012-03-29 13:59:57

+0

除了使用可能位於「合併單元格」的矩形形狀之外,我看不到任何Excel方式,我會用標準合併和其缺點 – JMax 2012-03-29 16:30:26

回答

1

你可以試試這個:

Sub VerticalAlign() 
ThisWorkbook.Sheets(1).Cells(Round((WorksheetFunction.CountA(Range("A1:A6")) + WorksheetFunction.CountBlank(Range("A1:A6")))/2, 0), "A") = "Your Value Here" 
End Sub 

你需要改變被計數的範圍,並且列它引用,但應該只是做到這一點。但是,有一點警告:VBA不像Excel那樣輪迴。不過,它應該總是在一個數字之內。你可以在這裏閱讀更多關於:http://support.microsoft.com/kb/194983

0

我們在單元格上使用文本框形狀來做到這一點。如果在繪製形狀時按住Alt鍵,拐角將捕捉到Excel網格並隨着單元格移動和調整大小,因此與輸入單元格相比,它不會花費更多時間。

0

我發現了一個快樂的事故,圍繞我的問題解決這個問題,如果有人關心知道。

對於我的情況,我需要跟蹤可按名稱和責任區排序的線性日曆上的員工休假時間。標題部分涵蓋了三行,我想在下面的數據被過濾時看到。第1行=年(跨月合併),第2行=月(跨日合併),第3行=日。 合併單元格A1:A3並標記名稱(員工),B1:B3合併並標記AREA(職責),以便我們可以跟蹤日曆電子表格上的假期時間以確保每個區域都有覆蓋範圍(至少有一名員工負責可用)。此方法的缺點導致過濾器塊與第1行關聯,因此第2行和第3行在名稱被過濾時被隱藏。

然後我嘗試了以前的文章的VBA代碼,它的工作,但最大的字體大小適合,如果太大,它會被切斷。如此美觀,它看起來很糟糕。

然後,我將名稱/區域標題放入單元格A3和B3中,不進行合併,並在第三行設置濾鏡。這有效地過濾了從第4行開始的所有內容,沒有隱藏任何東西,但仍然看起來很糟糕。

現在我找到了工作。如果您的標題位於要合併的頂部單元格中,並且底部有一些值。在底部設置過濾器(需要設置過濾器的值)。然後合併三個單元格,它的工作原理。 所以現在我的A1:A3名稱和B1:B3區域被合併,但過濾框位於部分的底部(與第3行對齊)。

希望對一些人有效。然後我從編輯中鎖定這些單元格(除了自動過濾器設置),現在它不能被意外更改。只有過濾。

相關問題