Yêu cầu thì phức tạp mà nói chuyện diễn tả viết tắt tùm lum, lười viết hoa chỗ chấm câu.
Mục đích của bạn là cần người ta giải quyết vấn đề cho mình. Để người ta giải quyết một cách hiệu quả thì bạn phải tự có bổn phận chịu khó viết rõ ràng, diễn tả vấn đề và kết quả mong muốn cho minh bạch.
Vấn đề 1:
Nhập một độ dài. Hàm sẽ tính ra độ dài chia trong khoảng 220-270, và cho ra số dư nhỏ nhất.
Function DoanPhan(byVal ln As Long) As Long
Const LNMIN = 220&
Const LNMAX = 270&
DoanPhan = ln
If ln < LNMIN Then Exit Function
Dim cLn As Long, cRm As Long, rm As Long
rm = LNMAX
For cLn = LNMIN To LNMAX
cRm = ln Mod cLn
If rm > cRm Then
DoanPhan = cLn ' take this optimum values
rm = cRm
End If
If rm = 0 Then Exit For
Next cLn
End Function
Vấn đề 2, hàm tính quái dị, mirror là không rõ mirror cái gì. Đúng từ ngữ thì phải là shift (dời đi một đoạn).
Function Mirror(ByVal s As String, ByVal shift As Double) As String
Dim i As Long, c As String, sNum As String
For i = InStr(s, "X") + 1 To Len(s)
c = Mid(s, i, 1)
If IsNumeric(c) Or c = "."Then
sNum = sNum & c
Mid(s, i, 1) = " "
Else
Exit For
End If
Next i
Mirror = Replace(Application.Trim(s), " ", CStr(shift - Val(sNum)))
End Function
Chú thích: muốn nói cám ơn dùng tiếng Việt không được sao mà phải theo Tây vậy?