Top 10 # Cách Viết Hàm Vba Trong Excel Xem Nhiều Nhất, Mới Nhất 3/2023 # Top Trend | Trucbachconcert.com

Hướng Dẫn Cách Viết Hàm Vba Trong Excel

Tuyệt đỉnh VBA – Viết code trong tầm tay

Function trong VBA

Khi viết mã Code trong VBA Excel, bạn đọc không chỉ viết được các Sub (thủ tục), mà còn có thể viết được các Function (chức năng, hàm).

Các Function này có thể sử dụng trong môi trường VBA hoặc trong môi trường Excel. Cách sử dụng Function giống như việc sử dụng hàm trong Excel, do đó có thể gọi Function là các hàm tự tạo trong VBA.

Cú pháp của Function như sau:

Function Tên( [tham số sử dụng] ) [As] [Kiểu giá trị trả về của Function] Nội dung Function End Function

Có 2 kiểu viết Function chính là:

Không quy định rõ kiểu giá trị trả về của Function

Function Tên( [tham số sử dụng] ) Nội dung Function End Function

2. Có quy định rõ kiểu trả về của Function

Function Tên( [tham số sử dụng] ) As [Kiểu giá trị trả về của Function] Nội dung Function End Function

Trong đó, hàm này bắt buộc phải có tham số sử dụng và Nội dung Function phải chỉ rõ hàm nhận kết quả như thế nào (có dòng Tên hàm = …. trong nội dung)

Hàm tính diện tích hình chữ nhật khi biết chiều rộng và chiều dài trong VBA

Như thông thường, diện tích hình chữ nhật = Chiều rộng x Chiều dài

Do phép tính cần sử dụng là phép nhân, nên hàm PRODUCT là hàm được chọn. Nhập hàm như hình sau đây:

Nếu chưa biết cách mở cửa sổ VBA trong Excel, bạn hãy tham khảo bài viết: HƯỚNG DẪN CÁCH MỞ VBA TRONG EXCEL

Tên Function là DienTich

Hàm gồm 2 tham số là ChieuRong và ChieuDai

Giá trị của hàm là kết quả của phép tính ChieuRong * ChieuDai

Trong đó,

Khi đã tạo xong hàm VBA, bạn quay lại trang tính Excel của mình và đánh tên hàm, khi đó Excel sẽ tự động gợi ý cho bạn hàm mà bạn vừa tạo này.

Bây giờ, việc bạn cần làm tiếp theo chỉ đơn giản là gán các giá trị tham số của hàm vào ô tương ứng:

Ta được kết quả hiển thị như sau:

Thật đơn giản phải không nào? VBA Excel không hề khó nếu bạn bỏ thời gian ra tìm hiểu.

Hàm tìm dòng cuối cùng có dữ liệu trong VBA

Đây là hàm được sử dụng phổ biến trong ngôn ngữ lập trình VBA.

Cú pháp thông thường là:

Thay vì việc mỗi lần cần sử dụng bạn lại phải viết lại toàn bộ cú pháp, thì với hàm này bạn chỉ cần thay đổi ở Tên Sheet và Số cột thì bạn đã có thể viết Function để cho nhanh hơn, dễ viết hơn:

Khi đó, bạn muốn xác định dòng cuối có dữ liệu trong Cột nào, Sheet ( Trang) nào, chúng ta chỉ việc gọi Tên Sheet, Số cột trong Function Lastrow là được.

Tổng kết

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel

Với sứ mệnh: ” Mang cơ hội phát triển kỹ năng, phát triển nghề nghiệp tới hàng triệu người “, đội ngũ phát triển đã và đang làm việc với những học viện, trung tâm đào tạo, các chuyên gia đầu ngành để nghiên cứu và xây dựng lên các chương trình đào tạo từ cơ bản đến chuyên sâu xung quanh các lĩnh vực: Tin học văn phòng, Phân tích dữ liệu, Thiết kế, Công nghệ thông tin, Kinh doanh, Marketing, Quản lý dự án…

50+ khách hàng doanh nghiệp lớn trong nhiều lĩnh vực như: Vietinbank, Vietcombank, BIDV, VP Bank, TH True Milk, VNPT, FPT Software, Samsung SDIV, Ajinomoto Việt Nam, Messer,…

Gitiho tự hào khi được đồng hành cùng:

Làm Thế Nào Để Viết Hàm Tự Tạo Trong Excel Bằng Vba?

Tìm hiểu về Function trong VBA

Khi viết code trong VBA chúng ta không chỉ viết được các Sub (thủ tục), mà chúng ta còn có thể viết được các Function (chức năng, hàm).

Các Function này có thể sử dụng trong môi trường VBA hoặc trong môi trường Excel. Cách sử dụng Function giống như việc sử dụng hàm trong Excel, do đó có thể gọi Function là các hàm tự tạo trong VBA.

Cú pháp của Function:

Function Tên( [tham số sử dụng] ) [As] [Kiểu giá trị trả về của Function]

Nội dung Function

End Function

Khi viết Function, bạn có thể viết 2 kiểu:

Không quy định rõ kiểu giá trị trả về của Function

Function Tên( [tham số sử dụng] )

Nội dung Function

End Function

Có quy định rõ kiểu trả về của Function

Function Tên( [tham số sử dụng] ) As [Kiểu giá trị trả về của Function]

Nội dung Function

End Function

Hàm bắt buộc phải có tham số sử dụng và Nội dung Function phải chỉ rõ hàm nhận kết quả như thế nào (có dòng Tên hàm = …. trong nội dung)

Tự tạo hàm tính diện tích hình chữ nhật khi biết chiều rộng và chiều dài

Chúng ta biết để tính diện tích của 1 hình chữ nhật, ta lấy chiều rộng * chiều dài.

Trong Excel, hàm thực hiện phép nhân là hàm Product. Chúng ta viết hàm như sau:

Thế nhưng bạn không muốn dùng hàm này, mà muốn gọi 1 hàm có tên là DienTich. Trong Excel không có sẵn hàm này, do đó bạn sẽ tự viết hàm đó trong VBA như sau:

Trong đó:

Tên Function là DienTich

Hàm gồm 2 tham số là ChieuRong và ChieuDai

Giá trị của hàm là kết quả của phép tính ChieuRong * ChieuDai

Gán giá trị vào các tham số của hàm:

Kết quả của hàm là:

Hàm tìm dòng cuối cùng có dữ liệu

Dòng cuối cùng có dữ liệu trong bảng dữ liệu rất hay được sử dụng trong lập trình VBA. Cú pháp thông thường là:

Thay vì việc mỗi lần cần sử dụng chúng ta lại phải viết lại toàn bộ cú pháp, chỉ thay đổi ở Tên Sheet và Số cột thì chúng ta có thể viết Function để cho nhanh hơn, dễ viết hơn:

Khi đó muốn xác định dòng cuối có dữ liệu trong Cột nào, Sheet nào, chúng ta chỉ việc gọi tên Sheet, Số cột trong Function Lastrow là được.

Cách tìm dòng cuối có chứa dữ liệu của một cột bằng hàm Match trong Excel Tự viết hàm của mình nhờ VBA trong Excel Chuyển công thức Excel sang hàm Vba sử dụng WorkSheetFunction

Hướng Dẫn Từng Bước Cách Viết Macro Trong Vba Excel

EXCEL MACRO là một chuỗi tự động được nhập vào, mô phỏng thao tác gõ phím hoặc thao tác với chuột của người dùng trong Excel. Một macro thường được sử dụng để thay thế một loạt các hành động lặp đi lặp lại và phổ biến trong việc xử lý bảng tính. Chẳng hạn bạn có thể ghi một định dạng và sau đó lặp lại ở bất cứ đâu bằng một thao tác chạy bộ ghi. Nó là một đoạn mã lập trình chạy trong môi trường Excel nhưng bạn không cần phải là người viết mã để lập trình macro. Mặc dù vậy, bạn cần có kiến ​​thức cơ bản về VBA để thực hiện các sửa đổi nâng cao trong macro.

Là con người, chúng ta là sinh vật có thói quen. Có những điều chúng ta làm hàng ngày. Sẽ tốt hơn nếu có một cách kỳ diệu là nhấn một nút duy nhất và tất cả các hành động thông thường của chúng ta đã được thực hiện? Macro giúp bạn đạt được điều đó. Trong ngôn ngữ lập trình, macro được định nghĩa là bản ghi các hành động thông thường của bạn trong Excel mà bạn có thể phát lại bằng một nút duy nhất.

Ví dụ, bạn đang làm nhân viên thu ngân cho một công ty cấp nước. Một số khách hàng thanh toán qua ngân hàng và vào cuối ngày, bạn được yêu cầu tải xuống dữ liệu từ ngân hàng và nhập dữ liệu vào Excel theo nhu cầu kinh doanh của bạn.

Bạn có thể nhập dữ liệu và định dạng vào Excel . Ngày hôm sau bạn sẽ làm hành động tương tự. Nó sẽ sớm trở nên nhàm chán và tẻ nhạt. Macro giải quyết các vấn đề như vậy bằng cách tự động hóa các tác vụ thông thường như vậy . Bạn có thể sử dụng macro để ghi lại các bước :

Nhập dữ liệu

Định dạng nó để đáp ứng yêu cầu báo cáo kinh doanh của bạn.

VBA là từ viết tắt của Visual Basic for Applications . Đây là ngôn ngữ lập trình mà Excel sử dụng để ghi lại các bước của bạn khi bạn thực hiện các tác vụ thông thường. Bạn không cần phải là một lập trình viên hoặc một người rất kỹ thuật để sử dụng macro trong Excel. Excel có các tính năng tự động tạo mã nguồn cho bạn.

Khái niệm cơ bản

Macro là một trong những tính năng của nhà phát triển. Theo mặc định, nó dành cho nhà phát triển và không được hiển thị trong excel. Bạn sẽ cần thông qua báo cáo tùy chỉnh để nó hiển thị

Macro có thể được sử dụng để bảo vệ hệ thống của bạn bởi những kẻ tấn công. Theo mặc định, chúng bị vô hiệu hóa trong excel. Nếu bạn cần chạy macro, bạn chỉ cần bật macro đang chạy và chỉ chạy macro từ một nguồn phát triển tin cậy

Nếu bạn muốn lưu macro, thì bạn phải lưu tệp tin làm việc của mình ở định dạng hỗ trợ macro * .xlsm

Tên macro không được chứa bất kỳ khoảng trắng nào.

Luôn điền vào mô tả của macro. Điều này sẽ giúp bạn và những người khác hiểu những gì macro đang làm.

Ví dụ về ghi macro trong Excel

Mở thẻ Developer trên thanh công cụ Excel

Để chạy chương trình VBA, bạn phải có quyền truy cập vào tùy chọn nhà phát triển trong Excel. Bật tùy chọn nhà phát triển và ghim nó vào thanh công cụ chính của bạn trong Excel.

Bước 1) nhấn vào “FILE” và chọn “Options.” .

Bước 2) Chọn “Tùy chọn” từ danh sách menu như trong ảnh bên dưới.

Bước 3 ) Bây giờ một cửa sổ khác sẽ mở ra, trong cửa sổ đó thực hiện lần lượt các bước sau:

Nhấp vào Customize Ribbon

Đánh dấu vào ô Develope

Bấm vào nút OK

Bước 4 ) Bây giờ bạn sẽ có thể thấy tab DEVELOPER trên thanh công cụ

Đầu tiên, chúng ta sẽ tạo một nút lệnh trên bảng tính và thực hiện chạy chương trình như sau

Tạo một thư mục trong ổ C có tên Bank Receipts

Dán tệp chúng tôi mà bạn đã tải xuống

Nhấp vào tab DEVELOPER

Nhấp vào Record Macro như trong hình bên dưới

Nhập ImportBankReceipts làm tên macro.

Bước hai để vậy theo mặc định

Nhập mô tả như trong hình trên

Nhấp vào “OK”

Đặt con trỏ vào ô A1

Nhấp vào tab DATA

Nhấp vào nút From Text trên thanh công cụ

Bạn sẽ nhận được cửa sổi sau đây

Chuyển đến ổ đĩa nơi bạn đã lưu trữ tệp CSV

Chọn tệp CSV

Bấm vào nút Import

Bạn sẽ nhận được hướng dẫn sau

Bấm vào nút Next sau khi làm theo các bước trên

Thực hiện theo các bước trên và nhấp vào nút next

Bấm vào nút Finish

tệp tin làm việc của bạn bây giờ sẽ trông như sau

Tạo các cột in đậm và sử dụng hàm SUM để tính tổng số tiền.

Bây giờ đã hoàn thành công việc thường ngày của mình, bạn có thể nhấp vào dừng ghi nút macro như trong hình bên dưới

Trước khi b lưu tệp tin làm việc, bạn sẽ cần xóa dữ liệu đã nhập. bạn sẽ làm điều này để tạo một mẫu mà bạn sẽ sao chép mỗi khi bạn có biên lai mới và muốn chạy macro ImportBankReceipts.

Làm nổi bật tất cả dữ liệu đã nhập

Nhấp chuột phải vào dữ liệu được tô sáng

Nhấp vào Xóa

Bấm vào nút lưu dưới dạng

Tạo một bản sao của mẫu mới được lưu

Mở nó ra

Nhấp vào tab DEVELOPER

Nhấp vào nút Macro

Một cửa sổ sẽ hiện ra như hình sau đây

Chọn ImportBankReceipts

Làm nổi bật mô tả về macro của bạn

Bấm vào nút Run

Bạn sẽ nhận được dữ liệu sau

Xin chúc mừng, bạn vừa tạo macro đầu tiên của mình trong excel.

Macro đơn giản hóa cuộc sống, công việc của bạn bằng cách tự động hóa hầu hết các công việc thường ngày mà bạn làm. Macro trong Excel được cung cấp bởi Visual Basic for Applications.

Với sứ mệnh: ” Mang cơ hội phát triển kỹ năng, phát triển nghề nghiệp tới hàng triệu người “, đội ngũ phát triển đã và đang làm việc với những học viện, trung tâm đào tạo, các chuyên gia đầu ngành để nghiên cứu và xây dựng lên các chương trình đào tạo từ cơ bản đến chuyên sâu xung quanh các lĩnh vực: Tin học văn phòng, Phân tích dữ liệu, Thiết kế, Công nghệ thông tin, Kinh doanh, Marketing, Quản lý dự án…

Gitiho tự hào khi được đồng hành cùng:

50+ khách hàng doanh nghiệp lớn trong nhiều lĩnh vực như: Vietinbank, Vietcombank, BIDV, VP Bank, TH True Milk, VNPT, FPT Software, Samsung SDIV, Ajinomoto Việt Nam, Messer,…

Hướng Dẫn Cách Viết Code Với Đối Tượng Worksheet Trong Vba Excel

Phân biệt Name và Code Name của đối tượng Sheet trong VBA

Trong cửa sổ Project của VBA, chúng ta có thể thấy đối tượng Sheet gồm 2 phần là Code Name và Name. Cụ thể như sau:

Code Name là phần bên trái, không nằm trong ngoặc. Code Name chỉ thay đổi được khi đổi tên mục (Name) ở cửa sổ Properties trong VBA

Name là phần trong dấu ngoặc đơn. Đây chính là tên sheet được thể hiện trong thanh SheetTab trong Excel. Khi đổi tên Sheet trong SheetTab thì phần tên này sẽ thay đổi theo.

Cách viết đối tượng Worksheet trong VBA

Đối tượng Worksheets hay Sheets

Chú ý trong đối tượng này, chữ Sheets có kèm theo chữ ” S “. Đây là sự khác biệt rất lớn, bởi việc viết có S hay không có S sẽ ảnh hưởng tới cấu trúc của câu lệnh code trong VBA.

Khi sử dụng đối tượng này, chúng ta phải nhập theo tên (Name) chứ không phải nhập theo CodeName.

Ví dụ:

Cách viết đúng (1 trong 2 cách):

Cách 1: Sheets(“01”).Select

Cách 2: ABC_01.Select (vì Sheet1 đã đổi thành ABC_01 nên ký tự ABC_01 chính là CodeName của Sheet)

Ngoài ra có thêm 1 cách viết khác là dùng số thứ tự của Sheet đó:

Thứ tự của Sheet chính là thứ tự của Sheet trên thẻ Sheet Tab của Excel theo chiều từ trái sang phải.

Thứ tự này không phụ thuộc vào tên Sheet, Code Name của Sheet hay thời gian khởi tạo Sheet.

Cách này thường áp dụng khi bạn biết rõ vị trí của Sheet cần làm việc trên thanh SheetTab mà không quan tâm tới tên Sheet.

Đối tượng Sheet

Khi viết đối tượng Sheet (không có chữ ” S“), chúng ta chỉ được phép sử dụng CodeName mà không được sử dụng Name.

Ngoài ra chúng ta có thể sử dụng thêm 1 đối tượng để gọi riêng Sheet đang hoạt động (đang được chọn, đang làm việc) là ActiveSheet (không có chữ S)

Như vậy chúng ta cần hết sức chú ý: Khi dùng cách gọi nào phải viết đúng theo cách viết của đối tượng đó. Nếu viết sai thì VBA sẽ báo lỗi không xác định được đối tượng (object)

Vì VBA là ngôn ngữ lập trình theo hướng đối tượng, do đó trong đối tượng Worksheet chúng ta có các phương thức sau:

Activate: Để kích hoạt một sheet

Ví dụ:

Sheets(“ABC”).Active ‘Kích hoạt Sheet có tên là ABC

Sheet1.Active ‘Kích hoạt Sheet có CodeName là Sheet1

Kích hoạt tức là chọn tới Sheet đó, đồng thời con trỏ chuột sẽ đặt tại 1 ô trong Sheet được kích hoạt.

Calculate: thực hiện việc tính toán tất cả các công thức có trong Sheet

Ví dụ:

Sheets(“ABC”).Calculate ‘Thực hiện tính toán các công thức trong Sheet có tên là ABC

Sheet1.Calculate ‘Thực hiện tính toán các công thức trong Sheet có CodeName là Sheet1

Copy: Sao chép 1 sheet

Việc copy 1 sheet có thể sao chép sheet đó thành 1 sheet mới nằm trong cùng 1 Workbook (tạo ra phiên bản copy) hoặc Copy ra 1 Workbook khác. Kèm theo đó là vị trí đặt Worksheet mới được copy đó. Nếu không quy định cụ thể ở vị trí nào thì sẽ mặc định là vị trí cuối cùng.

Việc gán vị trí sẽ quy định bởi tham số Before (ở trước) hoặc After (ở sau)

Sheets(“Tên sheet”).Copy ([Before], [After])

Sheets(Số thứ tự sheet).Copy ([Before], [After])

Ví dụ:

Worksheets(“Sheet2”).Copy Before:=Worksheets(1) ‘Sao chép sheet có tên là Sheet2 tới vị trí trước Sheet đầu tiên trong danh sách các Sheet

Delete: Xóa 1 sheet

Ví dụ:

Sheets(“MENU”).Delete ‘Xóa Sheet có tên là MENU

Khi xóa 1 Sheet, chúng ta có thể thấy Excel xuất hiện 1 thông báo yêu cầu xác nhận lại việc xóa này có được làm hay không. Nếu xác nhận lại là có thì Excel mới thực hiện việc Xóa Sheet.

Để bỏ thông báo đó mà luôn luôn cho phép xóa Sheet, chúng ta có thể kết hợp với câu lệnh không hiển thị thông báo của Excel như sau:

Sub XoaSheet()

Application.DisplayAlerts = False Sheet2.Delete Application.DisplayAlerts = True

Câu lệnh trên sẽ xóa Sheet có CodeName là Sheet2 mà không có bất kỳ thông báo nào.

Move: Di chuyển 1 sheet

Việc di chuyển Sheet cũng giống như khi chúng ta Copy, đó là phải chỉ định vị trí Sheet đó sẽ đi tới đâu, trước Sheet nào, hay sau Sheet nào, tại Workbook nào

Sheets(“Tên sheet”).Move ([Before], [After])

Select: Lựa chọn 1 sheet

Thao tác Select giống như Active, đó là lựa chọn sheet để kích hoạt Sheet.

Sự khác nhau cơ bản giữa Select với Active đó chính là: Chúng ta có thể lựa chọn (Select) cùng lúc nhiều Sheet, nhưng chỉ có duy nhất 1 Sheet được kích hoạt (Active)

Hy vọng rằng qua bài viết này các bạn đã có thể biết thêm nhiều kiến thức khi lập trình với đối tượng Sheet trong VBA.

Hướng dẫn cách viết code với đối tượng Workbook trong VBA Excel