返回列表 上一主題 發帖

組合字串加入空白字元區隔

  1. Function CONTEXT(inprng As Range, Optional delimiter As String, Optional row1st As Boolean) As String
  2.     'delimiter Optional. String character used to separate the substrings in the returned string.
  3.     'If omitted, a zero-length string (""), all items in the list are concatenated with no delimiters.
  4.     'row1st Optional. Boolean from Row to Column. If omitted, from column to row
  5.     Dim RowN As Double
  6.     Dim ColN%, i%
  7.     Dim TmpAr() As Variant
  8.     RowN = IIf(inprng.Rows.Count < 16384, inprng.Rows.Count, 16384)
  9.     ColN = inprng.Columns.Count
  10.    
  11.     Select Case 0
  12.         Case RowN + ColN - 2
  13.             CONTEXT = inprng
  14.         Case RowN - 1
  15.             CONTEXT = Join(Application.Transpose(Application.Transpose(inprng)), delimiter)
  16.         Case ColN - 1
  17.             CONTEXT = Join(Application.Transpose(inprng), delimiter)
  18.         Case Else
  19.             If row1st = True Then
  20.                 ReDim TmpAr(1 To RowN)
  21.                 For i = 1 To RowN
  22.                     TmpAr(i) = Join(Application.Transpose(Application.Index(Application.Transpose(inprng), , i)), delimiter)
  23.                 Next i
  24.                 CONTEXT = Join(TmpAr, delimiter)
  25.             Else
  26.                 ReDim TmpAr(1 To ColN)
  27.                 For i = 1 To ColN
  28.                     TmpAr(i) = Join(Application.Transpose(Application.Index(inprng, , i)), delimiter)
  29.                 Next i
  30.                 CONTEXT = Join(TmpAr, delimiter)
  31.             End If
  32.     End Select
  33. End Function
複製代碼
回復 3# zz5151353
ss

TOP

這個自訂函數可以自己設定串接符號; 假如串接的是多欄多列,還可以設定先欄後列(或是先列後欄)

回復  zz5151353
sunnyso 發表於 2013-6-4 00:29
ss

TOP

回復 13# 准提部林

If Val(QBy) > 0 Then QBase = QBase

請問這句放在Function 和 放在 Sub中會有不同結果,爲什麽?
ss

TOP

        靜思自在 : 人生沒有所有權,只有生命的使用權。
返回列表 上一主題