Hàm eval

Quan trọng:  Bài viết này là dịch máy, hãy xem tuyên bố miễn trừ trách nhiệm. Bạn hãy tìm phiên bản tiếng Anh của bài viết này tại đây để tham khảo.

Bạn có thể sử dụng hàm Eval để đánh giá một biểu thức kết quả trong một chuỗi văn bản hoặc giá trị số.

Bạn có thể xây dựng một chuỗi và sau đó chuyển nó đến hàm Eval như khi chuỗi là một biểu thức thực tế. Hàm Eval đánh giá biểu thức chuỗi và trả về giá trị của nó. Ví dụ, Eval("1 + 1") trả về 2.

Nếu bạn chuyển đến hàm Eval một chuỗi chứa tên của một hàm, hàm Eval trả về giá trị trả về hàm. Ví dụ, Eval("Chr$(65)") trả về "A".

Cú pháp

Eval ( stringexpr )

Đối số stringexpr là một biểu thức đánh giá là một chuỗi văn bản chữ và số. Ví dụ, stringexpr có thể là một hàm trả về một chuỗi hoặc một giá trị số. Hoặc có thể tham chiếu đến một điều khiển trên biểu mẫu. Stringexpr đối số phải định trị là một chuỗi hoặc giá trị số; nó không thể đánh giá một Đối tượng Microsoft Access.

Ghi chú: Ví dụ dưới đây minh họa sử dụng hàm này trong Visual Basic for Applications (VBA) mô-đun. Để biết thêm thông tin về cách làm việc với VBA, chọn Nhà phát triển tham chiếu trong danh sách thả xuống bên cạnh Tìm kiếm và nhập một hoặc nhiều thuật ngữ trong hộp tìm kiếm.

Ghi chú: Nếu bạn đang đi vào tên của một hàm để Eval hàm, bạn phải bao gồm dấu ngoặc đơn sau tên hàm trong đối số stringexpr . Ví dụ:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Chú thích

Bạn có thể sử dụng hàm Eval trong một điều khiển được tính toán trên một biểu mẫu hoặc báo cáo, hoặc trong một macro hoặc mô-đun. Hàm Eval trả về một biến thể là một chuỗi hoặc một số kiểu.

Đối số stringexpr phải là một biểu thức được lưu trữ trong một chuỗi. Nếu bạn chuyển đến hàm Eval một chuỗi không chứa một biểu thức số hoặc tên hàm nhưng chỉ là một chuỗi văn bản đơn giản, một lỗi thời gian chạy xuất hiện. Ví dụ, Eval("Smith") kết quả là lỗi.

Bạn có thể dùng hàm Eval để xác định giá trị được lưu trữ trong thuộc tính giá trị của điều khiển. Ví dụ sau đây chuyển một chuỗi chứa một tham chiếu đầy đủ vào điều khiển để Eval hàm. Nó rồi Hiển thị giá trị hiện tại của điều khiển trong một hộp thoại.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Bạn có thể dùng hàm Eval để truy nhập toán tử biểu thức không sẵn dùng thông thường trong Visual Basic for Applications (VBA) mô-đun. Ví dụ, bạn không thể dùng các toán tử SQL giữa... Và hoặc nhập trực tiếp trong mã của bạn, nhưng bạn có thể dùng chúng trong một biểu thức chuyển qua hàm Eval .

Ví dụ tiếp theo sẽ quyết định xem giá trị của điều khiển ShipRegion trên biểu mẫu đơn hàng là một trong một số đã xác định trạng thái tên viết tắt. Nếu trường có chứa một trong các tên viết tắt, intState sẽ là True (– 1). Lưu ý rằng bạn dùng dấu nháy đơn (') để bao gồm một chuỗi trong một chuỗi.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Ví dụ

Ví dụ sau đây giả định rằng bạn có một chuỗi các chức năng 50 xác định là A1, A2, v.v.. Ví dụ này dùng hàm Eval để gọi từng hàm trong chuỗi.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

Ví dụ tiếp theo gây ra sự kiện Bấm như khi người dùng đã bấm vào một nút trên biểu mẫu. Nếu giá trị của thuộc tính ảnh của nút bắt đầu với dấu bằng (=), đánh dấu nó là tên của một hàm, Eval hàm gọi hàm, tương đương kích hoạt Bấm sự kiện. Nếu giá trị không bắt đầu với dấu bằng, sau đó giá trị phải đặt tên cho macro. Phương pháp RunMacro của đối tượng DoCmd chạy macro đã đặt tên.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Ghi chú: Tuyên bố miễn trừ trách nhiệm Dịch Máy: Bài viết này do một hệ thống máy tính dịch mà không có sự can thiệp của con người. Microsoft cung cấp những bản dịch máy này để giúp người dùng không nói tiếng Anh hiểu nội dung về các sản phẩm, dịch vụ và công nghệ của Microsoft. Do bài viết này được dịch máy nên có thể có các lỗi về từ vựng, cú pháp hoặc ngữ pháp.

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×