Nhờ giúp đỡ viết hàm băng VB (1 người xem)

Liên hệ QC

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

o0khatvong0o

Thành viên mới
Tham gia
17/4/10
Bài viết
26
Được thích
8
Nhờ các thầy giúp đỡ.
Em đang cần chuyển đổi hàm trong File đính kèm thành ngôn ngữ VB.
=IF(LEN(B2)>0,LEFT(B2,FIND(" ",B2)-1)&REPT("_",25-(LEN(LEFT(B2,FIND(" ",B2)-1))+6))&IF(LEN(TRIM(LEFT(TRIM(RIGHT(B2,LEN(B2)-FIND(" ",B2))),2)))=1,TRIM(LEFT(TRIM(RIGHT(B2,LEN(B2)-FIND(" ",B2))),2))&"_"&RIGHT(TRIM(RIGHT(B2,LEN(B2)-FIND(" ",B2))),4),TRIM(LEFT(TRIM(RIGHT(B2,LEN(B2)-FIND(" ",B2))),2))&RIGHT(TRIM(RIGHT(B2,LEN(B2)-FIND(" ",B2))),4)),"")
Em mới bắt đầu tự học VB lên rất cần sự gúp đỡ của các thầy.
Rất mong sự giúp đỡ của mọi người.
 

File đính kèm

PHP:
Option Explicit
Function ChuyenMa(Ma As String)
 Dim DDai As Byte, VTr As Byte
 
 ChuyenMa = Replace(Ma, " ", "_")
 DDai = Len(ChuyenMa)
 If DDai = 25 Then
    Exit Function
 ElseIf DDai > 25 Then
    Do
        VTr = InStr(ChuyenMa, "_")
        ChuyenMa = Left(ChuyenMa, VTr - 1) & Mid(ChuyenMa, VTr + 1, DDai)
        DDai = Len(ChuyenMa)
        If DDai = 25 Then Exit Function
    Loop
 Else
    Do
        VTr = InStr(ChuyenMa, "_")
        ChuyenMa = Left(ChuyenMa, VTr) & Mid(ChuyenMa, VTr, DDai)
        DDai = Len(ChuyenMa)
        If DDai = 25 Then Exit Function
    Loop
 End If
End Function

Cú fáp tại [E2]: =ChuyenMa(B2)
 
Upvote 0
Nhờ các thầy giúp đỡ.
Em đang cần chuyển đổi hàm trong File đính kèm thành ngôn ngữ VB.

Em mới bắt đầu tự học VB lên rất cần sự gúp đỡ của các thầy.
Rất mong sự giúp đỡ của mọi người.
Nếu cấu trúc dữ liệu đúng như trong bài, mình góp một cách viết:
Mã:
Public Function Chuyen(Vung) As String
    Dim I, Tach, Gom, Kq, iGach, Wf
    Set Wf = Application.WorksheetFunction
        Vung = Wf.Trim(Vung)
        Tach = Split(Vung)
            If Len(Tach(1)) = 2 Then
                Gom = Tach(1) & Tach(2)
            Else
                Gom = Tach(1) & "_" & Tach(2)
            End If
        Kq = Tach(0) & " " & Gom
        iGach = 25 - Len(Kq) + 1
    Chuyen = Replace(Kq, " ", Wf.Rept("_", iGach))
End Function
Thân
 

File đính kèm

Upvote 0
Nếu cấu trúc dữ liệu đúng như trong bài, mình góp một cách viết:
Mã:
Public Function Chuyen(Vung) As String
    Dim I, Tach, Gom, Kq, iGach, Wf
    Set Wf = Application.WorksheetFunction
        Vung = Wf.Trim(Vung)
        Tach = Split(Vung)
            If Len(Tach(1)) = 2 Then
                Gom = Tach(1) & Tach(2)
            Else
                Gom = Tach(1) & "_" & Tach(2)
            End If
        Kq = Tach(0) & " " & Gom
        iGach = 25 - Len(Kq) + 1
    Chuyen = Replace(Kq, " ", Wf.Rept("_", iGach))
End Function
Thân
Em cảm ơn. Em không nghĩ nó có thể ngắn gọn đến vậy.
 
Upvote 0
Nếu cấu trúc dữ liệu đúng như trong bài, mình góp một cách viết:
Mã:
Public Function Chuyen(Vung) As String
    Dim I, Tach, Gom, Kq, iGach, Wf
    Set Wf = Application.WorksheetFunction
        Vung = Wf.Trim(Vung)
        Tach = Split(Vung)
            If Len(Tach(1)) = 2 Then
                Gom = Tach(1) & Tach(2)
            Else
                Gom = Tach(1) & "_" & Tach(2)
            End If
        Kq = Tach(0) & " " & Gom
        iGach = 25 - Len(Kq) + 1
    Chuyen = Replace(Kq, " ", Wf.Rept("_", iGach))
End Function
Thân
em cảm ơn.
em đã thử và ứng dụng lệnh trên rấy tuyệt.
em còn 1 vấn đề nữa cần sự support của mọi người.
em có lập 1 đề tài mới mong nhận được sự hỗ trợ bên "cơ sở dữ liệu"nhưng chưa được. mong mọi người có ai biết giúp em với.
http://www.giaiphapexcel.com/forum/...úp-lấy-dữ-liệu-từ-SQL-trả-về-Excel&highlight=
Nội dung cụ thể mọi người xem File đính kèm giúp em với.
 

File đính kèm

Upvote 0

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

Back
Top Bottom