Noname > 23-05-19, 11:53 AM
![[Hình: Chuyen-cong-thuc-thanh-ham-excel-680x350.webp]](https://2.bp.blogspot.com/-dEKawCP4OGI/XOYQTke4TFI/AAAAAAABeHU/kznIAzBRb-8cNBufMM-L3-u29kHHdH-QACLcBGAs/s1600/Chuyen-cong-thuc-thanh-ham-excel-680x350.webp)
![[Hình: Chuyen-cong-thuc-thanh-ham-excel-1.webp]](https://1.bp.blogspot.com/-cxWbhUdpnc0/XOYQpGU3mFI/AAAAAAABeHk/48axhtgm90c9S4la7vovugM7nA77WNxDgCLcBGAs/s320/Chuyen-cong-thuc-thanh-ham-excel-1.webp)
![[Hình: Chuyen-cong-thuc-thanh-ham-excel-2.webp]](https://3.bp.blogspot.com/-Az4L7zCmg8k/XOYQcvmxqYI/AAAAAAABeHY/-C8dBZamOFER3KE9JhIXcMeblf_db_cDACEwYBhgL/s320/Chuyen-cong-thuc-thanh-ham-excel-2.webp)
Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End FunctionXuân Thanh > 05-06-19, 08:16 AM
Option Explicit
Const Dau = "{}[]()+-*/^"
Function GiaTri(strChuoi As String)
Application.Volatile
Dim i As Long, j As Long, KQ As String
KQ = ""
strChuoi = Trim(strChuoi)
For i = 1 To Len(strChuoi)
If IsNumeric(Mid(strChuoi, i, 1)) = True Then
KQ = KQ & Mid(strChuoi, i, 1)
End If
For j = 1 To Len(Dau)
If Mid(strChuoi, i, 1) = Mid(Dau, j, 1) Then
KQ = KQ & Mid(Dau, j, 1)
End If
Next
Next
GiaTri = Evaluate(KQ)
End FunctionNoname > 29-02-20, 04:54 PM
FORMULATEXT(ô có chứa công thức)![[Hình: EbLFtgP.png]](https://i.imgur.com/EbLFtgP.png)
Function FORMULATEXT(r As Range)
FORMULATEXT = r.Formula
End Function
Noname > 19-03-20, 03:28 PM
Function Sum2T(r As Range)
For Each cl In r
If cl <> "" Then
Sum2T = Sum2T & cl.value & "+"
End If
Next
Sum2T = Left(Sum2T, Len(Sum2T) - 1)
End Function
gobi > 19-01-21, 04:43 PM
(05-06-19, 08:16 AM)Xuân Thanh Đã viết: Mở rộng hàm của NoName để áp dụng cho nhiều trường hợp
Mã:Option Explicit
Const Dau = "{}[]()+-*/^"
Function GiaTri(strChuoi As String)
Application.Volatile
Dim i As Long, j As Long, KQ As String
KQ = ""
strChuoi = Trim(strChuoi)
For i = 1 To Len(strChuoi)
If IsNumeric(Mid(strChuoi, i, 1)) = True Then
KQ = KQ & Mid(strChuoi, i, 1)
End If
For j = 1 To Len(Dau)
If Mid(strChuoi, i, 1) = Mid(Dau, j, 1) Then
KQ = KQ & Mid(Dau, j, 1)
End If
Next
Next
GiaTri = Evaluate(KQ)
End Function
Ví dụ
strChuoi = 5người * (5em -2em) ====> GiaTri = 15
strChuoi = 5^2+3^2 ==== GiaTri = 34
Noname > 25-01-21, 11:24 AM
(19-01-21, 04:43 PM)gobi Đã viết:(05-06-19, 08:16 AM)Xuân Thanh Đã viết: Mở rộng hàm của NoName để áp dụng cho nhiều trường hợp
Mã:Option Explicit
Const Dau = "{}[]()+-*/^"
Function GiaTri(strChuoi As String)
Application.Volatile
Dim i As Long, j As Long, KQ As String
KQ = ""
strChuoi = Trim(strChuoi)
For i = 1 To Len(strChuoi)
If IsNumeric(Mid(strChuoi, i, 1)) = True Then
KQ = KQ & Mid(strChuoi, i, 1)
End If
For j = 1 To Len(Dau)
If Mid(strChuoi, i, 1) = Mid(Dau, j, 1) Then
KQ = KQ & Mid(Dau, j, 1)
End If
Next
Next
GiaTri = Evaluate(KQ)
End Function
Ví dụ
strChuoi = 5người * (5em -2em) ====> GiaTri = 15
strChuoi = 5^2+3^2 ==== GiaTri = 34
em đã áp dụng đoạn mã này. nhưng khi chung số lẻ thì nó bỏ luôn dấu phẩy, làm sai kết quả. em không phải dân lập trình, nhờ a chỉnh lại mã để em có thể dùng với số lẻ. vd: 0,14*0,5*8 . cảm ơn anh nhiều ạ!