Board logo

標題: 如何判斷儲存格是否換行 [打印本頁]

作者: modelcrazyer    時間: 2012-11-28 14:25     標題: 如何判斷儲存格是否換行

各位達人:
小弟製作表格時因為儲存格的內容長短不一,又用自動換列,因此使用Autofit後感覺表格很亂
因此想要規則化儲存格表格美觀一點,因此想要讓沒有自動換列的儲存格列高都統一
所以想請問如何判斷儲存格內的內容是否超過一列?或是如何知道儲存格是否有換行?
作者: mark15jill    時間: 2012-11-28 14:56

本帖最後由 mark15jill 於 2012-11-28 14:58 編輯

回復 1# modelcrazyer


    換列? 分行?


[attach]13310[/attach]


請問如何判斷儲存格內的內容是否超過一列?或是如何知道儲存格是否有換行

依據?  如 一行內要幾個字? 或  向左 右偏? 置中?
作者: modelcrazyer    時間: 2012-11-28 15:35

是第二種,因為儲存格大小已固定了!!
作者: mark15jill    時間: 2012-11-28 15:41

本帖最後由 mark15jill 於 2012-11-28 15:43 編輯

回復 1# modelcrazyer


以圖為例,分別10個國字為分段 ,此方法為第一種。

[attach]13312[/attach]

若須第二種,要先判斷
預設儲存格 寬、 高 為何? 字體大小為何?  單行字數為何?
作者: modelcrazyer    時間: 2012-11-28 15:58

謝謝您熱心回答,
回應您的提問,目前儲存格寬知道,字體大小知道,單行字數因為內容含有符號,所以字數就是不知道要怎麼固定故無法判斷,至於欄高我將來會寫判斷式如果是單行會讓它固定,多行的話則會用Autofit產生,所
作者: mark15jill    時間: 2012-11-28 16:12

本帖最後由 mark15jill 於 2012-11-28 16:17 編輯

回復 5# modelcrazyer


先前有貼過兩張圖和 一段程式
就是簡易判斷

例如
1. If Cells(sii, 1) <> "" Then Cells(sii, 2) = Len(Cells(sii, 1))
這段意思,就是不管 A欄位 內容是 數字 文字 符號 都在B欄位內 顯示總字數,以便自行研判。

2.單行固定的話,就取大約值。
以正常 來說(自動緊縮後寬度)
若儲存格內   文字 單一個字  寬度約為 2.88   (單位我就不寫   
                       文字 兩個字以上 <如 7個字 寬度約為 (2*7 )+ 0.88>
                      半形符號  寬度約為 1.88
                      全形符號  寬度約為 2.88

舉例 : [A1]  = ◎┐中華民國┌◎     寬度約為  17.75  < 因為 EXCEL 有預設 緊縮字元 >
              [B1]  = ◎中華民國◎            寬度約為  13.25 < 因為 EXCEL 有預設 緊縮字元 >
              [C1]  =中華民國                 寬度約為 8.88 <(4*2 ) +0.88>
作者: stillfish00    時間: 2012-11-28 19:14

本帖最後由 stillfish00 於 2012-11-28 19:15 編輯

回復 5# modelcrazyer
檢查儲存格是否有勾選自動換行:  
If Range("A1").WrapText=true then
...

檢查儲存格中的字元是否有換行字元 , 像是Alt+Enter產生的換行
If InStr(1, Range("A2"), vbLf)>0 then
...

我的話, 會考慮換行字元都取代掉, 勾選自動換行, 手動調整欄寬, 列高用autofit
作者: modelcrazyer    時間: 2012-11-29 23:39

謝謝兩位的回答,後來用try and error的方法用Len函數,判斷一行大概幾個字元
作者: mark15jill    時間: 2012-11-30 09:01

回復 8# modelcrazyer


    一行幾個字元看寬度而定,轉過來說 今天一行我要30個字元,但我只要反過來設定30字元的寬度
作者: modelcrazyer    時間: 2012-11-30 09:44

謝謝,因為版面的關係,所以每個儲存格寬度是固定的,但是高度不固定,所以只能從字元數來判斷,本來是想用Chr(10)或是Chr(13)來判斷,但是因為是自動換列而非強迫換列所以有找不到Chr(10)或是Chr(13)這兩個控制碼
作者: mark15jill    時間: 2012-11-30 09:55

回復 10# modelcrazyer


    寬度固定,那就比較好解決。舉個例: "國家" 這兩個字,用AUTO功能縮緊後,寬度為 4.88 。
    如果今天要10個字一行, 寬度為 20.88 = (2*10 )+0.88  。
    總字數如果為  135 個字, 135/10 = 13 行 又5個字。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)