Tính toán chuỗi biểu thức (1 người xem)

Liên hệ QC

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

nguyenthuan

Thành viên mới
Tham gia
12/12/06
Bài viết
28
Được thích
4
Nghề nghiệp
Đi học lóm
Mong các bác giúp tính kết quả biểu thức chuỗi này
Trong 1 ô ví dụ A1 thông qua các phép nối chuỗi "&" em được kết quả là :
=(4.5×1.5×12.25)×2.5
Kết quả này chẳng qua là thể hiện cách tính toán cho tường minh
Và em muốn từ nó lập hàm để tính ra kết quả
Em lập hàm ValueTh với CODE như sau
Mã:
Function ValueTh(Text)
Dim i As Integer
Dim TextStr As String
Dim TextCount As Integer
Dim TextNew As String
TextCount = Len(Text)
TextNew = ""
For i = 1 To TextCount
    If Mid(Text, i, 1) = Chr(61) Then
        TextStr = ""
    ElseIf Mid(Text, i, 1) = Chr(34) Then
        TextStr = ""
    ElseIf Mid(Text, i, 1) = Chr(38) Then
        TextStr = ""
    ElseIf Mid(Text, i, 1) = Chr(215) Then
        TextStr = "*"
    Else: TextStr = Mid(Text, i, 1)
    End If
    TextNew = TextNew & TextStr
Next i
TextNew = Trim(TextNew)
ValueTh =  "=" & TextNew
End Function
Kết quả sau khi dùng hàm là ví dụ ở ô B1 là : =(4.5*1.5*12.25)*2.5
Khi lập hàm này mình nghĩ là nó sẽ ra kết quả luôn nhưng nó lại không ra được.Mình thử hàm value() nhưng không mang lại kết quả gì cả .Mong được sự tư vấn về cách làm và cách hiểu của mình.
 
Tôi xóa cái CommandButton "Hide" đi thì thấy bình thường.
Bây giờ đóng tập tin và mở book mới (New --> Blank workbook). Tôi đặt lên Sheet1 CommandButton rồi gõ vào cửa sổ Immediate lệnh: ?Evaluate(1) rồi Enter thì .... báo lỗi

Vụ này hơi bị... mới à nha!
Đúng là bác Bill lâu lâu lại hay có chiêu "rình" chả biết đường nào mà tìm
 
Upvote 0
Vụ này hơi bị... mới à nha!
Đúng là bác Bill lâu lâu lại hay có chiêu "rình" chả biết đường nào mà tìm

Tôi nghĩ là do help quá nghèo nàn nên ta chưa hiểu thấu Evaluate.
Vài điều đã chắc chắn.

1. Nếu ta đặt trên sheet 100 Button - Button 1, ..., Button 100 - thì Evaluate(1), ..., Evaluate(100) sẽ có lỗi.
Nhưng nếu thay vì đặt vd. "Button 5" ta đặt "Drop Down 5" có vd. 8 mục và hiện thời mục 3 được chọn thì Evaluate(5) sẽ trả về 3.

2. Nếu ta có vd. "Button 4" thì Evaluate(4), Evaluate(+4) và Evaluate("4") có lỗi còn Evaluate(-4), Evaluate("+4") và Evaluate("-4") không có lỗi.

2. Evaluate, tức viết tường minh thì chính là Application.Evaluate, LUÔN liên quan tới "active sheet". Nếu muốn thao tác trên các sheet khác "active sheet" thì phải dùng Worksheet.Evaluate.
Vd. Nếu Sheet1!A1 có "he he" còn Sheet2!A1 có "hic hic", và sheet1 là sheet hiện hành. Thế thì Evaluate("A1") sẽ trả về "he he" còn Worksheets("Sheet2").Evaluate("A1") trả về "hic hic"
 
Upvote 0
Web KT

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

Back
Top Bottom