返回列表 上一主題 發帖

[發問] 請問可以利用vba來達到自動斷行的效果嗎?

回復 1# 棋語鳥鳴
若單純只是對儲存格內容做自動斷行處理那是做得到的.

但若想在輸入過程中就要處理的話,
我目前還沒試出方法,
所以就先提供一半的功能囉.
自動斷行-Ans.zip (11.88 KB)

TOP

本帖最後由 luhpro 於 2011-10-1 17:08 編輯

回復 3# 棋語鳥鳴
喔...
那就很簡單了, 只要有底下的程式就可其他的都可以拿掉了 :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   Dim sStr$
  3.   Dim iI%
  4.   Dim lJ As Long, lLen As Long
  5.   
  6. On Error GoTo ErrorHandler

  7. Application.EnableEvents = False
  8.   With Target
  9.     sStr = .Value
  10.     lLen = Len(sStr)
  11.     iI = 0
  12.     lJ = 1
  13.     Do While lJ < lLen
  14.       If Mid(sStr, lJ, 1) = "," Then iI = iI + 1
  15.       If iI = 4 Then
  16.         .Value = Left(sStr, lJ) & Chr(10) & Right(sStr, Len(sStr) - lJ)
  17.         sStr = .Value
  18.         lLen = Len(sStr)
  19.         lJ = lJ + 1
  20.         iI = 0
  21.       End If
  22.       lJ = lJ + 1
  23.     Loop
  24.   End With
  25. Application.EnableEvents = True
  26. Exit Sub

  27. ErrorHandler:
  28.     Select Case Err.Number
  29.       Case 13 ' 刪除列會導致 Target 為 Null 此時引用 .Value 會發生錯誤
  30.         sStr = ""
  31.     End Select
  32.     Resume Next
  33. End Sub
複製代碼

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題