sửa lỗi ambiguous name detected

Liên hệ QC

tranminhnguyet98

Thành viên mới
Tham gia
13/3/20
Bài viết
10
Được thích
0
Em đang gặp lỗi ambiguous name detected khicode hàm, mong mọi người chỉ giúp;
Đoạn code như sau ạ;

Function GETSTRINGS(rng As Range, ParamArray arguments() As Variant) As Variant
Dim rtn As Integer: rtn = 0
If TypeName(arguments(0)) = "Double" Then
rtn = arguments(0)
ElseIf TypeName(arguments(0)) = "Range" Then
If TypeName(arguments(0).Value) = "Double" Then rtn = arguments(0)
End If
Dim rsult As Variant
Dim srchTxt() As String:
Dim i As Double, ii As Double
Dim uB As Double:
Dim arguB As Long: arguB = UBound(arguments)
For Each cell In rng
srchTxt = Split(cell, " ")
uB = UBound(srchTxt)
For i = 0 To uB
For ii = 0 To arguB
If TypeName(arguments(ii)) = "Range" Or TypeName(arguments(ii)) = "Variant()" Then
For Each vcell In arguments(ii)
If UCase(srchTxt(i)) Like UCase(CStr(vcell)) Then rsult = rsult & srchTxt(i + rtn) & "°"
Next
Else
If UCase(srchTxt(i)) Like UCase(CStr(arguments(ii))) Then rsult = rsult & srchTxt(i + rtn) & "°"
End If
Next
Next
Next
GETSTRINGS = WorksheetFunction.Transpose(Split(Left(rsult, Len(rsult) - 1), "°"))
End Function
 
Code trên dỏm bỏ bố, không xứng đáng debug.
Tốt hơn hết là cho biết bạn muón làm cái gì thì sẽ có ngừoi code cho cái hàm khác khá hơn.

Điẻn hình chỗ dỏm đầu tiên:
Dim rtn As Integer: rtn = 0
If TypeName(arguments(0)) = "Double" Then
rtn = arguments(0)
ElseIf TypeName(arguments(0)) = "Range" Then
If TypeName(arguments(0).Value) = "Double" Then rtn = arguments(0)
End If
Đem một số Double gán cho một biến Integer ---> chờ ngày nát bét dữ liệu

Chú: lỗi 'ambiguous name' xảy ra khi có hai hàm/sub trùng tên nhau
 
Lần chỉnh sửa cuối:
Lỗi trùng tên, ở hàm này thì không thấy, có thể tên hàm trùng với biến trong module hoặc hàm khác. Bạn nên khai báo option explicit để tránh nhầm lẫn khi biến chưa khai báo.
 
Code trên dỏm bỏ bố, không xứng đáng debug.
Tốt hơn hết là cho biết bạn muón làm cái gì thì sẽ có ngừoi code cho cái hàm khác khá hơn.

Điẻn hình chỗ dỏm đầu tiên:
Dim rtn As Integer: rtn = 0
If TypeName(arguments(0)) = "Double" Then
rtn = arguments(0)
ElseIf TypeName(arguments(0)) = "Range" Then
If TypeName(arguments(0).Value) = "Double" Then rtn = arguments(0)
End If
Đem một số Double gán cho một biến Integer ---> chờ ngày nát bét dữ liệu
hi vì là newbie nên kĩ năng còn non yếu, mong bác thông cảm ạ,
em đang muốn tách 1 lượng dữ liệu khá nhiều trường hợp khác nhau anh ạ
Bài đã được tự động gộp:

Lỗi trùng tên, ở hàm này thì không thấy, có thể tên hàm trùng với biến trong module hoặc hàm khác. Bạn nên khai báo option explicit để tránh nhầm lẫn khi biến chưa khai báo.
dạ cảm ơn bạn, mình sửa được lỗi này rồi ạ
 
Web KT
Back
Top Bottom