標題:
[發問]
如何利用WrapText屬性並增加Chr(10)
[打印本頁]
作者:
dechiuan999
時間:
2012-5-10 08:57
標題:
如何利用WrapText屬性並增加Chr(10)
本帖最後由 dechiuan999 於 2012-5-10 09:06 編輯
各位大大好:
在指定的Range欄
作者:
Hsieh
時間:
2012-5-10 12:33
回復
1#
dechiuan999
[code]Option Explicit
Sub aa()
Dim mSht1 As Worksheet
Dim mRng As Range, mRng1 As Range, i%, Mystr$
Set mSht1 = Worksheets(1)
With mSht1
Set mRng = .Range("a1:a7")
.Columns("i").ColumnWidth = 10
For Each mRng1 In mRng
Mystr = mRng1.Value
For i = 2 To Len(Mystr) - Len(Replace(Mystr, " ", "")) '第二個以後的空白鍵開始取代
Mystr = Application.Substitute(Mystr, " ", Chr(10), i)
Next
mRng1.Offset(, 8).Value = Mystr
mRng1.Offset(, 8).WrapText = True '利用WrapText屬性
作者:
dechiuan999
時間:
2012-5-10 20:43
謝謝版主大大。
正符合小弟的須求。
感恩版主大大。
作者:
icestormer
時間:
2012-5-11 08:33
本帖最後由 icestormer 於 2012-5-11 08:43 編輯
回復
3#
dechiuan999
我把超版的程式小小改了二個小地方後 居然會出現 只要遇到空格就會斷行了
,這是一邊學習超版提供的給你的程式碼中(substitute還是剛才去查才知道那是什麼作用.)不小心試出來的
原本超版的會在第二個空格後才會斷行 改成下方後會從第一個空格就開始斷了,不知這是不是你要的
Sub aa()
Dim mSht1 As Worksheet
Dim mRng As Range, mRng1 As Range, i%, Mystr$
Set mSht1 = Worksheets(1)
With mSht1
Set mRng = .Range("a1:a7")
.Columns("i").ColumnWidth = 10
For Each mRng1 In mRng
Mystr = mRng1.Value
For i = 0 To Len(Mystr) - Len(Replace(Mystr, " ", "")) '
這裡迴圈也由2改為0開始
' For i = 2 To Len(Mystr) - Len(Replace(Mystr, " ", "")) '第二個以後的空白鍵開始取代
Mystr = Application.Substitute(Mystr, " ", Chr(10)) '
跟超版的只有差在這裡少一 "i"
' Mystr = Application.Substitute(Mystr, " ", Chr(10)
, i
)
Next
mRng1.Offset(, 8).Value = Mystr
mRng1.Offset(, 8).WrapText = True '利用WrapText屬性<<<<
不過這裡有一個問題 我試過不管有沒有這行 ,怎看起來效果一樣呢
?
Next '
End With
End Sub
作者:
Hsieh
時間:
2012-5-11 08:46
回復
4#
icestormer
Substitute函數,指定最後一個引數才能針對該字元作取代
忽略該引數則是全部取代
所以你忽略那個 i 就不必使用迴圈,可以一次全部取代
作者:
icestormer
時間:
2012-5-12 10:37
回復
5#
Hsieh
原來如此. 受教了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)