2009-04-16 22 views
7

Điều gì, nếu bất cứ điều gì, là lợi ích của việc sử dụngVB/VBA StrComp hoặc =

If StrComp(strVal1, strVal2, vbTextCompare) = 0 Then 

như trái ngược với sử dụng

If strVal1 = strVal2 Then 

Nếu Option Compare Text được đặt ở cấp module, là có bất kỳ sự khác biệt ?

Tôi biết StrComp xử lý các kịch bản rỗng và <> kịch bản, tôi chỉ quan tâm đến tình huống mà strVal1 và strVal2 có các chuỗi không hợp lệ được gán.

Trả lời

1

Nếu Option Compare Text được đặt ở cấp module, là có bất kỳ sự khác biệt ?

No. Đơn giản chỉ cung cấp kiểm soát chi tiết hơn (không có cam kết chiến lược cấp mô-đun). Tuy nhiên, nếu bạn có thể thực hiện cam kết như vậy, hãy truy cập tùy chọn x = y: ít mã hơn luôn là mã tốt hơn.

+1

ít mã hơn * luôn * mã tốt hơn? [code golf] (http://codegolf.stackexchange.com/) –

+0

@MarkCh “… tất cả những thứ khác đều bình đẳng,” tất nhiên. –

+0

StrComp với vbBinaryCompare là cách nhanh hơn. 'Bất cứ khi nào bạn có thể, hãy sử dụng so sánh nhị phân. Đây là mặc định của VB. So sánh văn bản chậm hơn nhiều.' http://www.aivosto.com/vbtips/stringopt.html – lpfx

2

Vì StrComp đang so sánh chuỗi (với thông tin văn hóa), UpperCase và LowerCase không quan tâm ... (vì vậy Hello cũng giống như hello). Trong trường hợp =, sẽ có khác nhau (Giống như sử dụng so sánh nhị phân). Nếu tùy chọn so sánh văn bản đang ở mức mô-đun, sẽ không có sự khác biệt (nhưng bạn nên sử dụng StrComp trong trường hợp anh chàng khác xóa nó) ...

Các vấn đề liên quan