返回列表 上一主題 發帖

[發問] 儲存格字串長度大於255

[發問] 儲存格字串長度大於255

各位大哥好,小弟有一事想請教,
假設今天一儲存格內的內容為aaaaaaaa-aaaaa-aaa-aa-aa-a-a-.....................aaa-a-a-a-a-a-....
儲存格內的文字長度大於255,想要依每3個-符號做換行,有辦法做到嗎?
可以請各位大哥教教我嗎?   謝謝!

回復 1# a77261988
  1. Option Explicit
  2. Sub Ex()
  3. Dim W As Variant, xi As Integer
  4.     W = "aaaaaaaa-aaaaa-aaa-aa-aa-a-a-aaaaa-aaa-aa-aa-a-a-aaaaa- aaa - aa - aa - a - a - aaaaa - aaa - aa - aa - a - a - aaaaa - aaa - aa - aa - a - a - aaaaa- aaa - aa - aa - a - a - aaaaa - aaa - aa - aa - a - a - aaaaa - aaa - aa - aa-a-a-aaaaa- aa -aa - aa - a - a - aaaaa - aaa - aa - aa - a - a - aaaaa - aaa - aa - aa - a - a - aaaaa - aaa - aa - aa - a - a"
  5.     W = Split(W, "-")
  6.     For xi = 2 To UBound(W) Step 3
  7.         W(xi) = W(xi) & Chr(10)
  8.     Next
  9.     [A1] = Join(W, Chr(10))
  10. End Sub
複製代碼

TOP

怎麼一個問題的解讀會有這麼大的不同,呵呵!樓主的說明方式要加油。
我的理解是:
  1. Sub yy()
  2.     W = [A1]
  3.     For i = 1 To Len(W)
  4.         If Mid(W, i, 1) = "-" Then
  5.             j = j + 1
  6.             If j = 3 Then
  7.                 Mid(W, i, 1) = ",": j = 0
  8.             End If
  9.         End If
  10.     Next
  11.     W = Split(W, ",")
  12.     [b1].Resize(UBound(W) + 1, 1) = Application.Transpose(W)
  13. End Sub
複製代碼

TOP

本帖最後由 a77261988 於 2012-6-30 14:44 編輯

GBKEE大哥你好,我有嘗試了你提供的程式,
但是我發現split()這個函式似乎是將找到的符號用空格隔開,
抱歉,可能是我所表達的語意不明,造成你的誤解,
所以我希望呈現的資訊
aaaaaaaa-aaaaa-aaa-
aa-aa-a-
a-aaaaa-aaa-
aa-aa-a-
a-aaaaa- aaa -
aa-aa-a -
版主大哥有沒有建議別的較符合我需求的函式,謝謝!

TOP

oobird大哥你好,請問有辦法將這個內容塞在同一個儲存格嗎?

TOP

回復 5# a77261988
  1. Sub yy()
  2.     w = [A1]
  3.     For i = 1 To Len(w)
  4.         If Mid(w, i, 1) = "-" Then
  5.             j = j + 1
  6.             If j = 3 Then
  7.                 Mid(w, i, 1) = vbLf: j = 0
  8.             End If
  9.         End If
  10.     Next
  11.     [b1] = w
  12. End Sub
複製代碼

TOP

保留每行最后的"-"
  1. Sub yy()
  2.     w = [A1]
  3.     For i = 1 To Len(w)
  4.         If Mid(w, i, 1) = "-" Then
  5.             j = j + 1
  6.             If j = 3 Then
  7.                 Mid(w, i, 1) = ",": j = 0
  8.             End If
  9.         End If
  10.     Next
  11.     [b1] = Replace(w, ",", "-" & vbLf)
  12. End Sub
複製代碼

TOP

oobird大哥,謝謝你的程式,
可否再請教一下,因為這樣子是對單一儲存格,
那如果換成多個儲存格去做整理,好像只要儲存格裡的字元長度大於255,
就會沒辦法作排序整理,我應該如何做呢?

TOP

只要儲存格裡的字元長度大於255,就會沒辦法作排序整理
應該沒這個道理,儲存格可以顯示1024個字元
要整理多個儲存格,最好上傳附件,以了解你要處理的區域

TOP

oobird大哥,大概是這樣子,然後我想對D Column做整理.
麻煩你了,謝謝!

EX.rar (6.96 KB)

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題