Trong VBA, các Evaluate()
và []
phương pháp đều có thể được sử dụng để trả các mảng:Làm thế nào để đánh giá công thức mảng với phương pháp Đánh giá
Dim i As Variant
i = Evaluate("{1,2;3,4}")
i = [{1,2;3,4}]
cả hai dòng thiết i
là một mảng 2D chứa số 1-4 . Một chức năng bổ sung là Evaluate(...)(1,2)
trả về phần tử được lập chỉ mục R1C2 của mảng (tức là 2 - [...](1,2)
trong khi đó lỗi)
Tôi tự hỏi liệu có bất kỳ cú pháp nào để đánh giá hàm trang tính trả về mảng theo cùng một cách hay không, ví dụ:
i = Evaluate("LEN(A1:A5)>3") 'or similar like [{LEN(A1:A5)>3}]
mà nên trả lại mảng 1D như {False,False,False,True,True}
nếu tôi có văn bản dài hơn 3 ký tự trong A4
& A5
, nhưng nó không.
Nếu không, có cách nào khác để đánh giá một công thức mảng để trả về mảng đầy đủ không? Tôi đang tìm kiếm bất kỳ cách tiếp cận nào mang lại số lượng ký tự nhỏ nhất.
'i = Đánh giá ("ROW (A1: A5)> 3") ' – SJR
@SJR, kỳ lạ là nó hoạt động, nhưng' i = Đánh giá ("LEN (A1: A5)> 2") 'thì không. Tôi hy vọng rằng để trả về một mảng nhưng nó chỉ trả về một boolean duy nhất, có một số sự mơ hồ mà tôi nhìn không? – Greedo
Thực sự kỳ lạ. Tôi không chắc chắn lý do tại sao, nhưng một số chức năng cần phải được "buộc" để hoạt động đúng cách, ví dụ: điều này hoạt động 'i = Đánh giá (" IF (ROW (A1: A5), LEN (A1: A5)> 2) ")' – SJR