Lỗi Invalid procedure call or argument

Liên hệ QC

Azumie

Thành viên mới
Tham gia
18/7/19
Bài viết
7
Được thích
1
Chào các bác, các bác cho em hỏi chút về đoạn code sau
Mã:
Function SplitStr(txt As Variant, delimiter As String) As Variant

Dim i As Long, ii As Integer, a(), result()

For i = 1 To Len(txt)

    If i < Len(txt) And Mid(txt, i, 1) = delimiter Then

        ii = ii + 1: ReDim Preserve a(ii): a(ii) = i

    Else

        ReDim Preserve a(1)

    End If

Next

a(0) = 1

ReDim Preserve a(ii + 1): a(ii + 1) = Len(txt) + 1

ReDim result(UBound(a) - 1): ii = -1

For i = LBound(a) To UBound(a) - 1

    ii = ii + 1

    result(ii) = Replace(Mid(txt, a(i), a(i + 1) - a(i)), delimiter, "")

Next

SplitStr = result

End Function

Với dữ liệu chỉ là [AB.12]#[AB.13] thì code cho ra 2 kết quả nhưng với dữ liệu [AB.12]#[AB.13]#[AB.14] có 3 chuỗi cách nhau bằng dấu "#" trở lên thì vba báo #VALUE!. Các bác cho em hỏi do lệnh nào khiến không tách được chuỗi thành mảng được không ạ

Em đính kèm ví dụ theo thread
 

File đính kèm

  • vi du.xlsm
    15 KB · Đọc: 4
Cám ơn bác befaint đã giúp.
Em quên chưa mô tả yêu cầu là chuỗi lớn có thể có 2 hoặc nhiều chuỗi con nối với nhau bằng dấu "#", mục tiêu chỉ sử dụng 1 hàm có thể tách cho các chuỗi có dạng như vậy. Liệu code của em có thể điều chỉnh để sử dụng được không bác
 
Upvote 0
file này e mở lên thì nó báo là invailid procedure call or argument.mấy bác chỉ e khắc phục với ạ
 

File đính kèm

  • TF1_2E61_000100_1_Cable Schedule_20201125(Internal) Areawise_10122020 .xlsm
    3.6 MB · Đọc: 3
Upvote 0
Web KT

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

Back
Top Bottom