Bài Viết: Hướng Dẫn Truyền Tham Số Trong VBA (ByVal & ByRef)
- Trang chủ Có gì mới Hoạt động gần nhất Tác giả
- Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
- Video
Video về Excel Video về tin học khác Tin tức về tin học chung - Thông tin mới Featured content Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
- Tài nguyên Đánh giá mới nhất Tìm tài nguyên
- Đóng góp
Tìm kiếm
Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Note Tìm kiếm Tìm nâng cao…- Hoạt động gần nhất
- Đăng ký
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
- Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
- Trang chủ
- Bài viết nổi bật và thông báo
- Thread starter Thread starter PhanTuHuong
- Ngày gửi Ngày gửi 21/5/14
Người dùng đang xem chủ đề này
Đang trực tuyến: 2 (Thành viên: 0, Khách: 2)PhanTuHuong
VBA & VB.NET for Excel & AutoCad
Thành viên danh dự Tham gia 13/6/06 Bài viết 7,238 Được thích 24,781 Bài này sẽ giải thích tại sao các bạn thỉnh thoảng có thấy khai báo ByVal trước biến chứ không phải là Dim thông thường.- Các biến số của hàm hay thủ tục có thể bị thay đổi bởi các quy trình tính toán, điều đó cho thấy sự quan trọng của việc bảo vệ giá trị gốc của biến.
- Mặc định VB truyền thông tin tới hàm (hoặc thủ tục) dạng tham chiếu (ByRef), để tham chiếu tới dữ liệu gốc trong biến số của hàm vào lúc hàm được gọi ra. Hơn nữa, nếu hàm làm thay đổi giá trị của biến số, giá trị gốc sẽ bị thay đổi.
- Bạn sẽ có được kết quả trên nếu bạn bỏ qua từ khoá ByVal đứng trước biến số num1 trong hàm MyAverage trong phần khai báo biến số.
- Nếu bạn muốn thủ tục hàm thay đổi giá trị gốc, bạn không cần thiết phải thêm từ khoá ByRef vào, vì VB đã mặc định truyền tham số là ByRef.
- Khi bạn sử dụng từ khoá ByVal trước tên biến số, VBA sẽ truyền tham số bằng giá trị cho biến này. Điều đó có nghĩa là VBA sẽ tạo ra một bản sao của dữ liệu gốc. Bản sao đó sẽ được truyền tới hàm. Nếu hàm thay đổi giá trị của biến số được truyền tới, giá trị gốc sẽ không thay đổi - chỉ là copy sự thay đổi đó. Điều đó giải thích tại sao khi hàm MyAverage đã thay đổi giá trị của biến num1, nhưng giá trị gốc của biến đó vẫn như cũ.
batman1
Thành viên gạo cội



Tham gia 8/9/14 Bài viết 5,776 Được thích 9,819 sieuinan đã viết: hay quá cảm ơn ạ.............. Nhấp chuột vào đây để mở rộng...Thực ra bài viết làm hại người đọc. DIM là khai báo biến và KIỂU (type) của nó. ByVal/ByRef trong các sub/function là xác định CÁCH TRUYỀN tham số. KIỂU và CÁCH TRUYỀN tham số là 2 cái giầy khác nhau của một đôi giầy. function hichic(a, b As Long) function hichic(ByVal a, b As Long) Trong cả 2 trường hợp KIỂU là không thay đổi. a trong cả 2 trường hợp đều có KIỂU là Variant (mặc định là Variant nếu không chỉ rõ KIỂU). b trong cả 2 trường hợp có KIỂU là Long. Cái thay đổi là CÁCH TRUYỀN tham số. Trong cả 2 trường hợp b được truyền bằng địa chỉ / tham chiếu. a trong trường hợp 1 được truyền bằng địa chỉ, trong trường hợp 2 được truyền bằng giá trị. So sánh 2 khai báo thì KIỂU là không đổi, y như nhau. Chỉ có CÁCH TRUYỀN tham số là thay đổi. DIM là khai báo biến cùng với KIỂU của biến. ByVal / ByRef là khai báo / xác định CÁCH TRUYỀN tham số. 2 vấn đề khác nhau mà lại so sánh với nhau? Nếu tác giả chỉ đưa ra những ví dụ về cách truyền tham số và chỉ ra những sự khác nhau thì tôi không có gì để viết. Nhưng tác giả lại đưa cái DIM vào để so sánh thì chỉ làm rối người đọc. DIM thì liên quan gì tới cách truyền tham số? Nếu tác giả chỉ viết trên GPE thì là một chuyện, nhưng nếu viết sách mà không chính xác thì chỉ làm đầu người đọc u mê thêm .
hoangtuan243
Thành viên mới 
Tham gia 1/10/19 Bài viết 1 Được thích 0 PhanTuHuong đã viết: m1. Biến số num1 có g Nhấp chuột vào đây để mở rộng...Bài đã được tự động gộp: 24/10/19
tranthanh2200
Thành viên hoạt động


Tham gia 12/1/18 Bài viết 149 Được thích 33 Donate (Momo)
Giới tính Nam Đọc không hiểu luôn. Cung chưa hiểu ý nghĩa thực sự của Byval và byref HeSanbi
Nam Nhân✨Hiếu Lễ Nghĩa Trí Tín✨
Tham gia 24/2/13 Bài viết 2,829 Được thích 4,612 Giới tính Namtranthanh2200 đã viết: Đọc không hiểu luôn. Cung chưa hiểu ý nghĩa thực sự của Byval và byref Nhấp chuột vào đây để mở rộng...Đơn giản: Byval là ràng buộc biến số 1 chiều chỉ nhận, Byval a nếu nhập a với b là 2, gán a = 5, b sẽ có giá trị vẫn là 2 khi thủ tục gọi kết thúc. Byref là ràng buộc biến số 2 chiều nhận và trả, Byref a nếu nhập a với b là 2, gán a = 5, b sẽ có giá trị là 5 khi thủ tục gọi kết thúc. Mã: Sao chép. Sub Test() Dim b b = 2: ProcTest1 b: debug.print b b = 2: ProcTest2 b: debug.print b End Sub Sub ProcTest1(Byval a) a = 5 End Sub Sub ProcTest2(Byref a) a = 5 End Sub Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.
Bài viết mới nhất
N Hướng dẫn công thức Query kết hợp Arrayfomula bị lỗi (1 người xem)- Na7979
- Thứ bảy lúc 11:40
- Lọc và sắp xếp dữ liệu
- PhanTuHuong
- 14/12/25
- Thư giãn
- huuthang_bd
- 30/12/13
- Xây dựng ứng dụng.
- levovantoan
- Thứ sáu lúc 23:25
- Giải thích, gỡ rối, xử lý lỗi công thức
- GPE-Trợ Lý
- Hôm qua, lúc 10:02
- Học tập Online
- hoangvucntt
- Thứ bảy lúc 10:16
- Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
- dieppk.nb92
- 14/12/25
- Hàm và công thức Excel
- kaoehtkid
- 15/12/25
- Những vấn đề chung
- HeSanbi
- 13/12/25
- Xử lý chuỗi ký tự
- Nguyenkhang2404
- 24/7/25
- Hàm và công thức Excel
- tiny1010
- 16/3/10
- Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
- Na7979
- Thứ sáu lúc 14:01
- Google Sheets
- Question Question
- duongnhuxuyen
- 12/12/25
- Lập Trình với Excel
- phamdinh.huy.aladin@gmail
- 15/12/25
- Hàm và công thức Excel
- Mr_Siro
- Thứ tư lúc 10:57
- Giải thích, gỡ rối, xử lý lỗi công thức
- ptthuongtn
- Thứ tư lúc 15:15
- Hàm và công thức Excel
- skygatevn
- Thứ tư lúc 11:59
- Hướng dẫn sử dụng các hàm trong Excel
- PhanTuHuong
- 10/12/25
- Câu lạc bộ hoạt động xã hội
- GPE-Trợ Lý
- 24/11/25
- Câu lạc bộ hoạt động xã hội
- Đã giải quyết
- HeSanbi
- 30/5/20
- Lập Trình với Excel
Thành viên có số lượng bài viết cao nhất tháng
- Maika8008 41
- thanthanhan 23
- dungpham01 19
- ongke0711 19
- Phan Thế Hiệp 17
- ptm0412 17
- eagle12 16
- nguyenanhtruong2409 16
- HUONGHCKT 12
- vic_it 11
- nhhnam 10
- pycckuu410 10
- dieppk.nb92 10
- Vũ Hải Sơn 9
- HeSanbi 9
- le_vis 8
- Gà Con yêu VBA 8
- bsbnhh 7
- duongnhuxuyen 7
- Hana2610 6
Thành viên có điểm tương tác cao nhất tháng
- Phan Thế Hiệp 87
- Maika8008 34
- thanthanhan 20
- ongke0711 17
- ptm0412 17
- HeSanbi 17
- dungpham01 11
- HUONGHCKT 9
- eagle12 9
- SA_DQ 9
- Cúc Hr 8
- dieppk.nb92 6
- Mr.hieudoanxd 5
- befaint 5
- pycckuu410 5
- Hoàng Tuấn 868 4
- Phuocam 4
- nguyenanhtruong2409 4
- nhhnam 2
- Gà Con yêu VBA 2
Thời gian đếm ngược.
000 Ngày 00 Giờ 00 phút 00 giây Thân mời tham dự sự kiện sinh nhật GPE 2025- Trang chủ
- Bài viết nổi bật và thông báo
- Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Từ khóa » Byval Và Byref Trong Vba
-
Truyền Tham Chiếu Và Giá Trị Trong VBA - VietTuts
-
ByVal Và ByRef VBA - HelpEx
-
Ad Cho Mình Hỏi Byval Và Byref Là Gì, Cách Sử Dụng...
-
/forum/p?t=7266
-
Một điều Khá Quan Trọng Trong VBA... - Học VBA Excel Online
-
ByRef And ByVal In Excel VBA (In Easy Steps)
-
Cùng Nhau Lý Giải Function Là Gì? | Tự Học VBA
-
ByVal - Visual Basic | Microsoft Docs
-
Video#04_Phân Biệt Giữa Byval Vs ByRef Trong VBA - YouTube
-
Byval Và Byref Trong Vba - 掘金
-
VBA ARRAY TRONG EXCEL - HƯỚNG DẪN ĐẦY ĐỦ
-
[PDF] Hàm Và Thủ Tục, Biến Toàn Cục Và Cục Bộ, Tham Trị Và Tham ...
-
Bài 3: Khai Báo Biến Trong VBA | Cùng Học Excel