Sử dụng method Find để nối các chuỗi (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

khunglongcodon

Thành viên thường trực
Tham gia
24/11/06
Bài viết
222
Được thích
100
Nghề nghiệp
Kế toán
Chào các anh chị,
Em đang tập tành viết VBA, em muốn dùng method Find để lấy nối những chuỗi lại theo điều kiện cho trước. Em có lên mạng search được đoạn code nhưng sử dụng không được. Em dùng vòng lặp duyệt từ đầu đến cuối vẫn được nhưng có vẻ không ổn lắm. Kính mong sự hướng dẫn của các anh chị để em hiểu về các sử dụng method Find. Em xin cảm ơn.
 

File đính kèm

Chào các anh chị,
Em đang tập tành viết VBA, em muốn dùng method Find để lấy nối những chuỗi lại theo điều kiện cho trước. Em có lên mạng search được đoạn code nhưng sử dụng không được. Em dùng vòng lặp duyệt từ đầu đến cuối vẫn được nhưng có vẻ không ổn lắm. Kính mong sự hướng dẫn của các anh chị để em hiểu về các sử dụng method Find. Em xin cảm ơn.

E rằng dùng Find Method sẽ không xong!
Gửi bạn hàm khác:
PHP:
Function JoinText(ByVal Sep As String, ByVal IgnoreBlanks As Boolean, ParamArray sArray()) As String
  Dim tmpArr, SubArr, Arr(), Item, n As Long, tmp As String
  On Error Resume Next
  For Each SubArr In sArray
    tmpArr = SubArr
    If TypeName(tmpArr) <> "Variant()" Then
      tmp = IIf(TypeName(tmpArr) = "Error", "", Trim(CStr(tmpArr)))
      If IgnoreBlanks = False Or Len(tmp) Then
        n = n + 1
        ReDim Preserve Arr(1 To n)
        Arr(n) = tmp
      End If
    Else
      For Each Item In tmpArr
        tmp = IIf(TypeName(Item) = "Error", "", Trim(CStr(Item)))
        If IgnoreBlanks = False Or Len(tmp) Then
          n = n + 1
          ReDim Preserve Arr(1 To n)
          Arr(n) = tmp
        End If
      Next
    End If
  Next
  If n Then JoinText = Join(Arr, Sep)
End Function
Công thức tại L8:
Mã:
=JoinText(", ", TRUE, IF(F6=NghiepVuPS!$A$7:$A$197,NghiepVuPS!$D$7:$D$197,""))
Bấm Ctrl + Shift + Enter để kết thúc
-------------
Nói thêm: Hàm này cho phép nối chuổi với điều kiện rất phúc tạp, tương tự như SUMPRODUCT vậy
 
Upvote 0
Có phải bạn muốn kết quả như thế này không?
Mã:
Function LayTK1(b As String, a As Range, c As Range)


    LayTK1 = b & "," & a.Find(b, LookIn:=xlFormulas, LookAt:=xlWhole).Offset(, c.Column - a.Column)


End Function
 
Upvote 0
E rằng dùng Find Method sẽ không xong!
Gửi bạn hàm khác:
PHP:
Function JoinText(ByVal Sep As String, ByVal IgnoreBlanks As Boolean, ParamArray sArray()) As String
  Dim tmpArr, SubArr, Arr(), Item, n As Long, tmp As String
  On Error Resume Next
  For Each SubArr In sArray
    tmpArr = SubArr
    If TypeName(tmpArr) <> "Variant()" Then
      tmp = IIf(TypeName(tmpArr) = "Error", "", Trim(CStr(tmpArr)))
      If IgnoreBlanks = False Or Len(tmp) Then
        n = n + 1
        ReDim Preserve Arr(1 To n)
        Arr(n) = tmp
      End If
    Else
      For Each Item In tmpArr
        tmp = IIf(TypeName(Item) = "Error", "", Trim(CStr(Item)))
        If IgnoreBlanks = False Or Len(tmp) Then
          n = n + 1
          ReDim Preserve Arr(1 To n)
          Arr(n) = tmp
        End If
      Next
    End If
  Next
  If n Then JoinText = Join(Arr, Sep)
End Function
Công thức tại L8:
Mã:
=JoinText(", ", TRUE, IF(F6=NghiepVuPS!$A$7:$A$197,NghiepVuPS!$D$7:$D$197,""))
Bấm Ctrl + Shift + Enter để kết thúc
-------------
Nói thêm: Hàm này cho phép nối chuổi với điều kiện rất phúc tạp, tương tự như SUMPRODUCT vậy

Cảm ơn anh nhiều lắm. Hàm anh cung cấp hay quá. Chỉ có điều em muốn một cái hàm nó ngắn ngắn dễ hiểu. Hehe. Tham lam quá phải không anh?
 
Upvote 0
Có phải bạn muốn kết quả như thế này không?
Mã:
Function LayTK1(b As String, a As Range, c As Range)


    LayTK1 = b & "," & a.Find(b, LookIn:=xlFormulas, LookAt:=xlWhole).Offset(, c.Column - a.Column)


End Function

hình như anh hiểu nhầm ý em rồi? em muốn nối các tài khoản nợ dựa theo điều kiện là số chứng từ ạ
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom