Tìm hiểu ngôn ngữ VBA (2 người xem)

Liên hệ QC

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

ThichExcel

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
11/10/06
Bài viết
68
Được thích
21
Các bạn ơi giải thích giúp mình hiểu 1 số vấn đề sau với
-----------------------------------------------------
1 . Trong lập trình mình thấy có từ "Set" vậy ý nghĩa của nó là như thế nào

2. "Public +..." (... là những thứ "liên quan" như sub, Const gc_Title,vv..vv..) là gì (Các bạn liệt kê các thứtrong ... cho mình nhé)

3. "Option Explicit " và "Private Sub" là gì.

4. Mình thấy sau khi khai báo Sub thì hay có
"(ByVal Target As Excel.Range, Cancel As Boolean) "
Vậy ý nghĩa của chuỗi trong ngoặc là như thế nào. Các bạn cho mình các ví dụ nhé.
----------------------------------------------------
Mình không học bài bản nên bây giờ nhờ các bạn giải thích dần dần các vấn đề trong ngôn ngữ nhé.
 
Lần chỉnh sửa cuối:
1 . Trong lập trình mình thấy có từ "Set" vậy ý nghĩa của nó là như thế nào
Khi làm việc với các đối tượng ta không thể dùng các lệnh gán "=" được mà phải thêm từ khoá Set. Nói chung từ khoá Set thì thường liên quan đến đối tượng.

2. "Public +..." (... là những thứ "liên quan" như sub, Const gc_Title,vv..vv..) là gì (Các bạn liệt kê các thứtrong ... cho mình nhé)

3. "Option Explicit " và "Private Sub" là gì.
Khi đã khai báo Option Explicit có nghĩa là bắt buộc phải khai báo tất cả các biến, nếu một biến nào đó được sử dụng trong chương trình mà không khai báo --> sẽ có thông báo lỗi...
Private/ Public/ Static:
Đây là những từ khoá cho biết thủ tục (Sub) hay hàm (Function) hoặc biến (Var)... được dùng như thế nào. Tức là phạm vi hoạt động của chúng (cục bộ hay toàn cục...).
Đề đơn giản mình lấy ví dụ sau:
Trong VBA bạn Insert 2 module (Module1 và Module2)
Module1 bạn đánh code sau:
Public Sub VD1()
MsgBox "Hello"
End Sub

Module2 bạn đánh code sau:
Public Sub VD2()
MsgBox "VD2 goi VD1"
Call VD1
End Sub

Bạn chạy VD2 xem, không thấy có lỗi gì.
Bây giờ bạn thay đổi từ khoá Public thành Private trong VD1 và chạy VD2 xem, sẽ có lỗi xảy ra "Sub or Function not defined". Tức là không xác định được sub VD1.

4. Mình thấy sau khi khai báo Sub thì hay có
"(ByVal Target As Excel.Range, Cancel As Boolean) "
Vậy ý nghĩa của chuỗi trong ngoặc là như thế nào. Các bạn cho mình các ví dụ nhé
ByVal là từ khoá dùng để khai báo tham số truyền. Bạn cần biết cách truyền tham số, tham trị, tham chiếu.... cho hàm
Nếu khai báo ByVal thì VB (VBA) sẽ truyền tham trị cho hàm, nó chỉ xử lý với bản sao của tham số.
Nếu không khai báo ByVal thì VB (VBA) sẽ xem đó là truyền tham chiếu.

Mình cũng hiểu vậy thôi. Mong mọi người góp ý thêm.
 
Lần chỉnh sửa cuối:
Cho mình hỏi với
Khi mình thay bằng

Private Sub VD1()
MsgBox "Hello"
End Sub

Thì sao khi mở Alt F8 thì không thấy có marco "VD1"
 
Lần chỉnh sửa cuối:
Tuy không hiện ra nhưng nếu bạn đánh đúng tên Sub đó nó vẫn chạy bình thường.

Cái chính là bạn hiểu phạm vi hoạt động của Private, Public: private thì chỉ hoạt động trong 1 module... thôi. Cũng với ví dụ trên, bạn vẫn có thể chạy VD2 nếu VD1 nằm cùng Module với VD2 (kể cả phạm vi của VD1 là Private).
 
OK bây giờ thì mình đã hiểu "private" hoạt động như thế nào.
Đợt tới mình có nhiều thắc mắc, các bạn giúp nhé
 
PhanTuHuong đã viết:
Để hiểu thêm về khai báo biến, bạn tìm hiểu cuốn kieudulieuVB ở mục này:
http://www.giaiphapexcel.com/forum/showthread.php?t=214&page=2
Naming Convention:Để có thể làm việc cộng tác, tạo thói quen tốt khi viết mã và dể bảo trì code cho các dự án...lớn, tôi thấy có 1 cao thủ Excel in bảng nầy ra và để tại bàn vi tính mỗi khi viết code, bảng nầy tôi trích từ e-book
 

File đính kèm

kelvin đã viết:
Naming Convention:Để có thể làm việc cộng tác, tạo thói quen tốt khi viết mã và dể bảo trì code cho các dự án...lớn, tôi thấy có 1 cao thủ Excel in bảng nầy ra và để tại bàn vi tính mỗi khi viết code, bảng nầy tôi trích từ e-book

Đúng như bạn nói, tôi thấy các sách về VB, VBA đều có quy định về điền tố (predix) của các đối tượng cho dễ hiểu, dễ quản lý.
 
mình mới học lập trình nên không biết đóng góp gì cho các bạn, mong các bạn chỉ bảo mình. Các bạn có tài liệu VBA cơ bản nào cho người chân ước chân ráo như mình không..Thanks các bạn nhiều.
 
Web KT

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

Back
Top Bottom