CÁCH CHUYỂN DỮ LIỆU HỆ INCH SANG DẠNG TEXT

Liên hệ QC

tampt@stonevietnam

Thành viên mới
Tham gia
15/4/15
Bài viết
49
Được thích
2
Gửi anh chị:

Anh chị giúp đỡ em chuyển dữ liệu dạng Number hệ inch sang dạng text (Fraction) hệ inch với ạ

File em gửi phía dứoi các anh chị xem giúp em với nhé
cám ơn anh chị ạ
1540460350149.png
 

File đính kèm

Hên xui?

=TEXT(C3,"0 #/#")
 
=TEXT(B3,"0 0/0")
 
vâng anh. Em muốn loại bỏ công thức anh ạ. anh có cách nào hay hơn là coppy thì chỉ bảo em với ạ
Em cám ơn anh nhiêu
dữ liệu như thế nào, bạn cho tôi xem, bao nhiêu cột bao nhiêu dòng
Không thì lấy cái này mà áp dụng:
cách dùng:
cách 1: arrayFrac <data double - cell đơn hoặc mảng>, <nơi in kết quả - là một cells đơn>
Cách 2:
arr = arrayFrac (<data double - cell đơn hoặc mảng>)
<sheetname>.cells(<tham số row>,<tham số cột>).resize(<tham số row arr>,<tham số cột arr>).value = arr

Function này duyệt cả mảng 1 chiều và 2 chiều. Tuy nhiên sẽ làm chậm macro vì dùng On Error Resume Next
<tham số row arr> và <tham số cột arr> phụ thuộc vào mảng đưa vào tùy trường hợp mà dùng ubound(arr) và ubound(arr, 2)
Mã:
Sub test_arrayFrac()
    arrayFrac [U15:V22], [W15]
End Sub

Function arrayFrac(fromRng As Range, toRng As Range) As Variant

    If fromRng Is Nothing Then Exit Function
    Dim arr, dArr
    If IsArray(fromRng) Then
        arr = fromRng.Value
        Dim i As Long, j As Long, m As Long, n As Long
        On Error Resume Next
        j = LBound(arr)
        If err.Number = 0 Then n = UBound(arr) Else n = 1: On Error GoTo 0
    
        On Error Resume Next
        i = LBound(arr, 2)
        If err.Number = 0 Then m = UBound(arr, 2) Else m = 1: On Error GoTo 0

    
        ReDim dArr(1 To n, 1 To m)
        For i = 1 To n
            For j = 1 To m
                dArr(i, j) = Application.Text(arr(i, j), "# ?/?")
            Next j
        Next i
        arrayFrac = dArr
        If Not toRng Is Nothing And Not IsArray(toRng) Then
            toRng.Resize(n, m) = dArr
        End If
    Else
        arrayFrac = Application.Text(fromRng, "# ?/?")
        If Not toRng Is Nothing And Not IsArray(toRng) Then
            toRng.Value = Application.Text(fromRng, "# ?/?")
        End If
    End If

End Function
 
Lần chỉnh sửa cuối:
dữ liệu như thế nào, bạn cho tôi xem, bao nhiêu cột bao nhiêu dòng
Không thì lấy cái này mà áp dụng:
cách dùng:
cách 1: arrayFrac <data double - cell đơn hoặc mảng>, <nơi in kết quả - là một cells đơn>
Cách 2:
arr = arrayFrac (<data double - cell đơn hoặc mảng>)
<sheetname>.cells(<tham số row>,<tham số cột>).resize(<tham số row arr>,<tham số cột arr>).value = arr

Function này duyệt cả mảng 1 chiều và 2 chiều. Tuy nhiên sẽ làm chậm macro vì dùng On Error Resume Next
<tham số row arr> và <tham số cột arr> phụ thuộc vào mảng đưa vào tùy trường hợp mà dùng ubound(arr) và ubound(arr, 2)
Mã:
Sub test_arrayFrac()
    arrayFrac [U15:V22], [W15]
End Sub

Function arrayFrac(fromRng As Range, toRng As Range) As Variant

    If fromRng Is Nothing Then Exit Function
    Dim arr, dArr
    If IsArray(fromRng) Then
        arr = fromRng.Value
        Dim i As Long, j As Long, m As Long, n As Long
        On Error Resume Next
        j = LBound(arr)
        If err.Number = 0 Then n = UBound(arr) Else n = 1: On Error GoTo 0
   
        On Error Resume Next
        i = LBound(arr, 2)
        If err.Number = 0 Then m = UBound(arr, 2) Else m = 1: On Error GoTo 0

   
        ReDim dArr(1 To n, 1 To m)
        For i = 1 To n
            For j = 1 To m
                dArr(i, j) = Application.Text(arr(i, j), "# ?/?")
            Next j
        Next i
        arrayFrac = dArr
        If Not toRng Is Nothing And Not IsArray(toRng) Then
            toRng.Resize(n, m) = dArr
        End If
    Else
        arrayFrac = Application.Text(fromRng, "# ?/?")
        If Not toRng Is Nothing And Not IsArray(toRng) Then
            toRng.Value = Application.Text(fromRng, "# ?/?")
        End If
    End If

End Function


UI anh ơi. em làm được rồi ạk. cám ơn đoạn vba của anh nhé.
các bác bào cần đoạn vba này thì vào cop nhé, nó thật hữu ích ạ
 
Web KT

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

Back
Top Bottom