iT邦幫忙

0

excel 2013 2003 vba 合併欄位的列高

小弟對於VBA實在不曾接觸過
可是沒想到今天突然被丟了個問題

因為是excel報表 有合併欄位
合併欄位內的字有很多行 可是卻沒有辦法全部顯示出來
到第四行就不見了
請問有沒有辦法透過VBA 讓他自己調整到適合的高度呢(可以完整顯示欄位內容)?

小弟我有稍微做了一點功課 發現office2007以後的VBA語法似乎有所不同
所以希望各位能同時提供給我2003 以及2013的VBA語法 (如果有通用就更好了@@)

題外話
不知道各位有沒有興趣了解OpenSource(PFsense)的防火牆呢?開心
如果有人想知道的話.小弟就整理一下從0到套上整個企業使用的心得暈

Ethan Jhuang iT邦研究生 3 級 ‧ 2013-04-25 09:36:25 檢舉
雖然這問題最終還是無解,不過非常感謝兩位的幫忙,過程中讓小弟學習了不少!~

2 個回答

10
海綿寶寶
iT邦超人 1 級 ‧ 2013-04-22 20:00:55
最佳解答

如果知道是第幾列的話(以第15列為例)

<pre class="c" name="code">
Sub Macro1()
    Rows("15:15").EntireRow.EntireRow.AutoFit
End Sub

如果不管3721整張工作表都調整的話

<pre class="c" name="code">
Sub Macro2()
    Cells.Select
    Cells.EntireRow.AutoFit
End Sub
看更多先前的回應...收起先前的回應...
Ethan Jhuang iT邦研究生 3 級 ‧ 2013-04-23 08:10:32 檢舉

antijava大
您的語法經過小弟測試沒有反應耶= =
我用第二個語法下去調整 只有出現全選而已

至於第一個...因為是合併欄位.所以小弟不知道那中間的數值該怎麼下才好暈

Q:沒有反應?
A:可能因為我是Excel2003

Q:中間的數值該怎麼下
A:先點一下那個合併欄位,看左上角顯示的儲存格位置,如果是 C23,就寫 23:23

Ethan Jhuang iT邦研究生 3 級 ‧ 2013-04-23 10:37:46 檢舉

antjava大!~
我用2003測試過後,發現第一個OK,可是第二個還是一樣無法使用...倒
可是我比較需要的是第二個 哈哈
在勞煩您指導一下了

那就試試這個
從第一列到第65535列

<pre class="c" name="code">
Rows("1:65535").EntireRow.AutoFit

如果還不行
我也沒法子了
因為我沒有 Excel 2013 可以試
臉紅

你自己錄巨集好了

1.開啟檔案
2.點左上角(藍色位置),以選取整張工作表
3.在紅色區域任選一條調整列高,調完後如下圖
4.點儲存格A1以取消全選工作表
5.功能表->工具->巨集->錄製新巨集
6.點左上角(藍色位置),以選取整張工作表
7.在紅色區域任選一條點兩下以調為最適列高
8.停止錄製巨集

如果在步驟7是你要的結果
那麼錄好就是你要的 VBA

4
chengwin1957
iT邦新手 1 級 ‧ 2013-04-23 13:32:08

Sub 巨集1()
'
' 巨集1 巨集
'

'
Cells.Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

Ethan Jhuang iT邦研究生 3 級 ‧ 2013-04-23 13:37:21 檢舉

C大您好
這語法跑下去.格式就全部跑掉了= =

Ethan Jhuang iT邦研究生 3 級 ‧ 2013-04-23 15:55:47 檢舉

C大...
我用巨集6 跑出來的格式也都變了-.-

我要發表回答

立即登入回答