tranngochai1979
Thành viên mới

- Tham gia
- 14/2/08
- Bài viết
- 11
- Được thích
- 0
Trên diễn đàn có đoạn code:
Public Function Gtr(Dulieu As String, Optional Pcach = ",")
Dim i, temp
If Len(Dulieu) = 0 Then Exit Function
Dulieu = Replace(Dulieu, Pcach, "")
Dulieu = Replace(Dulieu, ",", ".")
For i = 1 To Len(Dulieu)
Select Case Mid(Dulieu, i, 1)
Case "x": temp = temp & "*"
Case ":": temp = temp & "/"
Case "+", "-", "*", "/", "(", ")", ".", 0 To 9: temp = temp & Mid(Dulieu, i, 1)
End Select
Next i
For i = 1 To Len(Dulieu)
Select Case Right(temp, 1)
Case "-", "+", "*", "/": temp = Left(temp, Len(temp) - 1)
End Select
Next
Gtr = Evaluate(temp)
End Function
Tuy nhiên, hàm này chỉ chạy theo hệ dấu decimal Symbol là "." và digit grouping symbol là "," theo hệ mặc định của hệ điều hành. Hệ US.
Ở máy mình, hệ dấu decimal Symbol là "," và digit grouping symbol là "." theo yêu cầu của phần mềm riêng nên code trên chạy không đúng.
Ô A1: 7,2*0,3*2 thì Ô B1 = 432
Ô A2: 7.2*0.3*2 thì Ô B2 = 4,32
Mình muốn hỏi anh em nào thạo code là cái đoạn mã trên phải sửa lại như thế nào để nó chạy đúng với hệ dấu trên máy mình (Phần viết code này mình hơi dốt, cũng đã thử thay đổi linh tinh nhưng không được).
Xin cám ơn trước.
Public Function Gtr(Dulieu As String, Optional Pcach = ",")
Dim i, temp
If Len(Dulieu) = 0 Then Exit Function
Dulieu = Replace(Dulieu, Pcach, "")
Dulieu = Replace(Dulieu, ",", ".")
For i = 1 To Len(Dulieu)
Select Case Mid(Dulieu, i, 1)
Case "x": temp = temp & "*"
Case ":": temp = temp & "/"
Case "+", "-", "*", "/", "(", ")", ".", 0 To 9: temp = temp & Mid(Dulieu, i, 1)
End Select
Next i
For i = 1 To Len(Dulieu)
Select Case Right(temp, 1)
Case "-", "+", "*", "/": temp = Left(temp, Len(temp) - 1)
End Select
Next
Gtr = Evaluate(temp)
End Function
Tuy nhiên, hàm này chỉ chạy theo hệ dấu decimal Symbol là "." và digit grouping symbol là "," theo hệ mặc định của hệ điều hành. Hệ US.
Ở máy mình, hệ dấu decimal Symbol là "," và digit grouping symbol là "." theo yêu cầu của phần mềm riêng nên code trên chạy không đúng.
Ô A1: 7,2*0,3*2 thì Ô B1 = 432
Ô A2: 7.2*0.3*2 thì Ô B2 = 4,32
Mình muốn hỏi anh em nào thạo code là cái đoạn mã trên phải sửa lại như thế nào để nó chạy đúng với hệ dấu trên máy mình (Phần viết code này mình hơi dốt, cũng đã thử thay đổi linh tinh nhưng không được).
Xin cám ơn trước.
