2016-11-23 24 views
5

Tôi đã làm việc với Excel một thời gian, nhưng tôi chưa bao giờ đọc sự khác biệt giữa hai toán tử này ("bất kể tôi đã sử dụng cả hai") :== trong Excel VBASự khác biệt giữa: = và = trong Excel VBA

+5

Tôi sẽ không gọi ': = 'an' toán tử '- nó giống như" định danh đối số được đặt tên ". – Comintern

+0

'hàm gọi (đối số: = giá trị)' nói tất cả các đối số là tùy chọn, và có 10, bạn muốn chuyển tên thứ 5, sau đó thiết lập biến như 'let variable = x' –

Trả lời

7

Như bạn đã biết, = được sử dụng để gán giá trị hoặc đặt đối tượng - ví dụ i=1

:= mặt khác (như Quốc tế cộng sản đề cập), được sử dụng để gán một giá trị cho một cuộc tranh luận tên nhất định, afaik duy nhất bên trong một phương pháp hoặc chức năng.

Hãy xem xét ví dụ sau: bạn có thể sử dụng giống như MsgBox "Hello World", , "Title1" - xác định MsgBox 's đối số theo thứ tự mặc định - prompt, mặc định Buttons kiểu thì Title.

Ngoài ra, người ta có thể sử dụng := viết MsgBox Title:="Title1", prompt:="Hello world"

ý rằng

  • thứ tự của các đối số là không quan trọng ở đây và

  • không có nhu cầu để xác định placeholders trống cho đối số mặc định , ,.

+4

' = 'cũng được sử dụng như một toán tử boolean, đó là lý do tại sao điều quan trọng là không vô tình sử dụng '=' thay vì ': =' - ví dụ 'MsgBox Title =" Title1 ", prompt =" Hello world "' có lẽ sẽ tương đương với 'MsgBox False, False' nếu' Option Explicit' không được sử dụng. – YowE3K

+0

@ YowE3K Điểm tuyệt vời! –

1

Chúng ta hãy lấy ví dụ biểu thức Range.Find method

. Find (gì, After, lookin, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Đó là một LOT điều kiện để thiết lập! Nhưng bạn chỉ muốn một tìm kiếm đơn giản của số 2 trong Range("A1:A500"):

Nếu không có sự điều hành :=, bạn sẽ phải sử dụng dấu phẩy để có được bất kỳ biến tùy chọn để thiết lập:

Range("A1:A500").Find(2, , xlValue, , , , , ,) 

Với các nhà điều hành :=, bạn có thể chỉ định điều kiện nào bạn muốn mà không cần phân định qua tất cả các cài đặt mặc định:

Range("A1:A500").Find(what:=2, lookin:=xlValues) 
+0

Đối số * bắt buộc * duy nhất cho 'Phạm vi.Find' là 'Cái gì'; bạn không cần phải chỉ định tất cả các đối số - bạn cần chỉ định tất cả các đối số * mà bạn không cung cấp giá trị cho *. –

+0

@ Mat'sMug Làm rõ bạn sẽ phải sử dụng dấu phẩy để có được thông qua các giá trị tùy chọn. – Chrismas007

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