Top 20 # Cấu Trúc If Vba / 2023 Xem Nhiều Nhất, Mới Nhất 11/2022 # Top Trend | 3mienmoloctrungvang.com

Hướng Dẫn Cách Viết Cấu Trúc If Else Trong Vba Excel / 2023

Cấu trúc IF để xét tính logic Đúng / Sai của 1 vấn đề, do đó thường gồm:

Nếu mệnh đề đúng (thỏa mãn) thì xảy ra điều gì

Nếu mệnh đề không đúng (không thỏa mãn) thì xảy ra điều gì

Cấu trúc đơn giản của IF là chỉ xét trong trường hợp mệnh đề đúng:

IF … Then Nếu mệnh đề trong IF là đúng thì

… Câu lệnh được thực hiện

End If Kết thúc cấu trúc

Trường hợp mệnh đề không đúng sẽ không có gì xảy ra.

Cấu trúc này còn có thể được viết rút gọn như sau:

IF + Mệnh đề + Then + Câu lệnh thực thi khi mệnh đề đúng (viết trên cùng 1 dòng)

Dạng đơn giản của cấu trúc IF thường dùng để xét các mệnh đề ngắn, đơn giản, tại đó chỉ quan tâm tới khả năng xảy ra kết quả đúng của mệnh đề

Ví dụ:

Xét xem giá trị tại ô A1 có phải là lớn hơn 5 không. Nếu lớn hơn 5 thì trả về giá trị Đúng tại ô B1 (không làm gì nếu giá trị không lớn hơn 5)

Sub KiemTraGiaTri()

Range(“B1”).Value = “Đúng”

Cấu trúc đầy đủ của IF là bao gồm cả trường hợp mệnh đề đúng và không đúng.

Cách viết như sau:

Ví dụ:

Xét xem giá trị tại ô A1 có phải là lớn hơn 5 không. Nếu lớn hơn 5 thì trả về giá trị “Đúng” tại ô B1, nếu không lớn hơn 5 thì trả về giá trị “Sai” tại ô B1

Sub KiemTraGiaTri()

Range(“B1”).Value = “Đúng”

Range(“B1”).Value = “Sai”

Cách viết cấu trúc IF lồng nhau trong VBA

Khi xét những vấn đề có logic phức tạp, chúng ta không thể chỉ dùng 1 lần If, mà phải lồng ghép nhiều lần If trong 1 cấu trúc. Việc này giống như viết các hàm If lồng nhau trong 1 công thức Excel vậy. Tuy nhiên trong VBA sẽ thể hiện cấu trúc này như sau:

Mệnh đề đầu tiên sẽ viết bình thường

Từ mệnh đề thứ 2 sẽ viết với ElseIf chứ không phải chỉ có If, và viết trước từ khóa Else

Các mệnh đề khác sẽ viết giống với mệnh đề thứ 2

Cuối cùng khi tất cả các mệnh đề đều không thỏa mãn thì sẽ xét tại Else

Kết thúc toàn bộ cấu trúc chỉ cần 1 lần End If

Cách viết này sẽ gọn hơn và các mệnh đề If có mối quan hệ nối tiếp nhau, sẽ thực hiện lần lượt theo từng mệnh đề chứ không thực hiện tất cả các mệnh đề.

Mệnh đề nào đúng sẽ dừng lại ở mệnh đề đó.

Chỉ khi mệnh đề trước sai thì mới xét tiếp mệnh đề sau.

Ví dụ:

Cách làm:

Dựa vào giá trị ở ô B2 để xét mệnh đề so sánh giá trị ô B2 với các mức doanh thu. Nếu thỏa mãn sẽ trả về giá trị ở ô C2 là các mức thưởng

Sub XetThuong()

Range(“C2”).Value = 200

Range(“C2”).Value = 100

Range(“C2”).Value = 0

Hy vọng qua bài viết này các bạn đã có thể biết cách sử dụng cấu trúc IF trong lập trình VBA. Đây là cấu trúc rất quan trọng và thường xuyên được sử dụng trong lập trình VBA.

Hướng Dẫn Cách Viết Cấu Trúc If Then Else Trong Vba Excel / 2023

Cách viết cấu trúc IF dạng đơn giản

Cấu trúc IF để xét tính logic Đúng / Sai của 1 vấn đề, do đó thường gồm:

Nếu mệnh đề đúng (thỏa mãn) thì xảy ra điều gì

Nếu mệnh đề không đúng (không thỏa mãn) thì xảy ra điều gì

Cấu trúc đơn giản của IF là chỉ xét trong trường hợp mệnh đề đúng:

IF … Then Nếu mệnh đề trong IF là đúng thì

… Câu lệnh được thực hiện

End If Kết thúc cấu trúc

Trường hợp mệnh đề không đúng sẽ không có gì xảy ra.

Cấu trúc này còn có thể được viết rút gọn như sau:

IF + Mệnh đề + Then + Câu lệnh thực thi khi mệnh đề đúng (viết trên cùng 1 dòng)

Dạng đơn giản của cấu trúc IF thường dùng để xét các mệnh đề ngắn, đơn giản, tại đó chỉ quan tâm tới khả năng xảy ra kết quả đúng của mệnh đề

Ví dụ:

Xét xem giá trị tại ô A1 có phải là lớn hơn 5 không. Nếu lớn hơn 5 thì trả về giá trị Đúng tại ô B1 (không làm gì nếu giá trị không lớn hơn 5)

Sub KiemTraGiaTri()

Range(“B1”).Value = “Đúng”

Cách viết cấu trúc IF đầy đủ

Cấu trúc đầy đủ của IF là bao gồm cả trường hợp mệnh đề đúng và không đúng.

Cách viết như sau:

Ví dụ:

Xét xem giá trị tại ô A1 có phải là lớn hơn 5 không. Nếu lớn hơn 5 thì trả về giá trị “Đúng” tại ô B1, nếu không lớn hơn 5 thì trả về giá trị “Sai” tại ô B1

Sub KiemTraGiaTri()

Range(“B1”).Value = “Đúng”

Range(“B1”).Value = “Sai”

Cách viết cấu trúc IF lồng nhau trong VBA

Khi xét những vấn đề có logic phức tạp, chúng ta không thể chỉ dùng 1 lần If, mà phải lồng ghép nhiều lần If trong 1 cấu trúc. Việc này giống như viết các hàm If lồng nhau trong 1 công thức Excel vậy. Tuy nhiên trong VBA sẽ thể hiện cấu trúc này như sau:

Mệnh đề đầu tiên sẽ viết bình thường

Từ mệnh đề thứ 2 sẽ viết với ElseIf chứ không phải chỉ có If, và viết trước từ khóa Else

Các mệnh đề khác sẽ viết giống với mệnh đề thứ 2

Cuối cùng khi tất cả các mệnh đề đều không thỏa mãn thì sẽ xét tại Else

Kết thúc toàn bộ cấu trúc chỉ cần 1 lần End If

Cách viết này sẽ gọn hơn và các mệnh đề If có mối quan hệ nối tiếp nhau, sẽ thực hiện lần lượt theo từng mệnh đề chứ không thực hiện tất cả các mệnh đề.

Mệnh đề nào đúng sẽ dừng lại ở mệnh đề đó.

Chỉ khi mệnh đề trước sai thì mới xét tiếp mệnh đề sau.

Cách làm:

Dựa vào giá trị ở ô B2 để xét mệnh đề so sánh giá trị ô B2 với các mức doanh thu. Nếu thỏa mãn sẽ trả về giá trị ở ô C2 là các mức thưởng

Sub XetThuong()

Range(“C2”).Value = 200

Range(“C2”).Value = 100

Range(“C2”).Value = 0

Hy vọng qua bài viết này các bạn đã có thể biết cách sử dụng cấu trúc IF trong lập trình VBA. Đây là cấu trúc rất quan trọng và thường xuyên được sử dụng trong lập trình VBA.

Ngoài ra các bạn có thể tìm hiểu thêm các bài viết sau:

Hướng dẫn sử dụng vòng lặp For.. Next trong VBA Hướng dẫn thay đổi cấu trúc của mảng trong VBA Hướng dẫn cách viết code với đối tượng Worksheet trong VBA Excel

Đối Tượng Range Trong Excel Vba / 2023

Đối tượng Range trong Excel VBA là một trong những đối tượng được sử dụng nhiều nhất trong khi tự động hóa bất kỳ tác vụ nào với VBA. Chúng ta tham chiếu đến các Range khác nhau trong một Worksheet và thực hiện các hoạt động khác nhau trên Range trong Excel. Chúng ta có các thuộc tính và các phương thức khác nhau để xử lý các đối tượng Range trong Excel.

Đối tượng Range là đại diện của một cell (hoặc cells) trên Worksheet, là đối tượng quan trọng nhất của Excel VBA.

Ví dụ đối tượng Range trong Excel VBA

Đối tượng Range

Ví dụ 1: đặt một nút lệnh trên Worksheet và thêm dòng code sau:

Kết quả:

Ví dụ 2: đặt một nút lệnh trên Worksheet và thêm dòng code sau:

Kết quả:

Đối tượng Cells

Thay vì Range, bạn có thể sử dụng Cells. Sử dụng Cells đặc biệt hữu ích khi bạn muốn lặp qua các ranges.

Ví dụ 3: đặt một nút lệnh trên Worksheet và thêm dòng code sau:

Kết quả:

Ví dụ 4: đặt một nút lệnh trên Worksheet và thêm dòng code sau:

Range(Cells(1, 1), Cells(4, 1)).Value = 5

Kết quả:

Khai báo một đối tượng Range

Bạn có thể khai báo một đối tượng Range bằng cách sử dụng các từ khoá Dim và Set.

Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj .Value = 8

Kết quả:

Các phương thức của đối tượng Range

Select

Để chọn Range được yêu cầu trong Worksheet

AddComment

AdvancedFilter

Áp dụng các bộ lọc nâng cao trên Excel Range

Calculate

Để làm mới các phép tính trong Excel Range

Formula

Để thêm công thức cho Excel Range

Clear

Để xóa một Excel Range hoàn toàn bao gồm các định dạng và dữ liệu

ClearComments

ClearContents

Để chỉ xóa nội dung/dữ liệu trong một Excel Range

ClearFormats

Để chỉ xóa các định dạng của một Excel Range

ClearHyperlinks

Để chỉ xóa các siêu liên kết trong một Excel Range

Copy

Để sao chép một Excel Range đến một vị trí khác

CopyFromRecordset

Sao chép dữ liệu từ recordset và dán vào một Excel Range

Cut

Cắt Excel Range trong Worksheeet

Delete

Để xóa một Range trong Worksheet

Find

Để tìm kiếm và một Cell có dữ liệu cần thiết

Insert

Để chèn một dãy các Cell, Row hoặc Column

ListNames

Để liệt kê các Excel Range được đặt tên trong bảng tính

Merge

Để hợp nhất Excel Range

PasteSpecial

Để dán dữ liệu với các tiêu chí khác nhau, như các giá trị, các định dạng có hoạt động toán học hoặc chuyển đổi

Phương thức Select

Một phương pháp quan trọng của đối tượng Range là phương thức Select. Phương thức Select được sử dụng để chọn một range.

Ví dụ:

Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj.Select

Kết quả:

Lưu ý: Để chọn các ô trên một Worksheet khác, bạn phải kích hoạt Worksheet này trước. Ví dụ, các dòng code sau đây chọn ô B7 trên Worksheet thứ ba từ bên trái.

Worksheets(3).Activate Worksheets(3).Range("B7").Select

Phương thức Copy/Paste

Phương thức Copy và Paste sử dụng để sao chép một dãy và dán nó vào một nơi khác trên Worksheet.

Ví dụ:

Range("A1:A2").Select Selection.Copy Range("C3").Select ActiveSheet.Paste

Kết quả:

Range("C3:C4").Value = Range("A1:A2").Value ActiveSheet.Paste

Phương thức ClearContents

Phương thức ClearContents được sử dụng để chỉ xóa nội dung của một Excel Range.

Ví dụ:

Range("A1").ClearContents

Hoặc đơn giản hơn bằng cách sử dụng code sau:

Phương thức ClearFormats

Phương thức ClearFormats được sử dụng để chỉ xóa định dạng của một Excel Range.

Phương thức Clear

Phương thức Clear được sử dụng để xóa một Excel Range hoàn toàn bao gồm các định dạng và dữ liệu.

Phương thức Formula

Phương thức Formula được sử dụng để thêm công thức cho Excel Range.

Ví dụ:

Range("A1").Formula = "=Sum(B1:B5)"

Các thuộc tính của đối tượng Range

Rows

Thuộc tính Rows cho phép truy cập vào một hàng cụ thể của range.

Columns

Thuộc tính Columns cho phép truy cập vào một cột cụ thể trong một range.

Count

Được sử dụng để đếm số ô, hàng và cột của range.

Thuộc tính Rows

Thuộc tính Rows cho phép truy cập vào một hàng cụ thể của range.

Ví dụ:

Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj.Rows(3).Select

Kết quả:

Thuộc tính Columns

Thuộc tính Columns cho phép truy cập vào một cột cụ thể của range.

Ví dụ:

Dim rangeObj As Range Set rangeObj = Range("A1:C4") rangeObj.Columns(2).Select

Kết quả:

Thuộc tính Count

Thuộc tính Count được sử dụng để đếm số ô, hàng và cột của range.

Ví dụ 1:

Dim rangeObj As Range Set rangeObj = Range("A1:C4") MsgBox rangeObj.Count

Kết quả:

Ví dụ 2:

Dim rangeObj As Range Set rangeObj = Range("A1:C4") MsgBox rangeObj.Rows.Count

Kết quả:

Vòng Lặp For Trong Vba / 2023

Vòng lặp for trong VBA được sử dụng để lặp một phần của chương trình nhiều lần. Nếu số lần lặp là cố định thì vòng lặp for được khuyến khích sử dụng, còn nếu số lần lặp không cố định thì nên sử dụng vòng lặp while hoặc do while.

Cú pháp

For counter = start To end [Step stepcount] [statement 1] [statement 2] .... [statement 10] [Exit For] [statement 11] [statement 22] .... [statement n] Next

Trong đó:

Ví dụ về vòng lặp for trong VBA

Ví dụ 1: Sử dụng từ khóa Step 2 để tăng biến đếm 2 đơn vị sau mỗi vòng lặp.

Sub ForExample1() Dim i As Integer For i = 0 To 10 Step 2 MsgBox "Gia tri cua i la: " & i Next End Sub

Kết quả:

Gia tri cua i la: 0 Gia tri cua i la: 2 Gia tri cua i la: 4 Gia tri cua i la: 6 Gia tri cua i la: 8 Gia tri cua i la: 10

Ví dụ 2: Sử dụng từ khóa Step -2 để giảm biến đếm 2 đơn vị sau mỗi vòng lặp.

Sub ForExample2() Dim i As Integer For i = 10 To 0 Step -2 MsgBox "Gia tri cua i la: " & i Next End Sub

Kết quả:

Gia tri cua i la: 10 Gia tri cua i la: 8 Gia tri cua i la: 6 Gia tri cua i la: 4 Gia tri cua i la: 2 Gia tri cua i la: 0

Ví dụ 3: không cần sử dụng từ khóa Step, biến đếm i tăng dần từ 1 đến 5.

Sub ForExample3() Dim i As Integer For i = 1 To 5 MsgBox "Gia tri cua i la: " & i Next End Sub

Kết quả:

Gia tri cua i la: 1 Gia tri cua i la: 2 Gia tri cua i la: 3 Gia tri cua i la: 4 Gia tri cua i la: 5

Ví dụ về thoát vòng lặp for trong VBA

Từ khóa Exit For được sử dụng để thoát vòng lặp for trong VBA.

Ví dụ:

Sub ForExample4() Dim i As Integer For i = 0 To 10 Exit For Else MsgBox "Gia tri cua i la: " & i End If Next End Sub

Kết quả:

Gia tri cua i la: 0 Gia tri cua i la: 1 Gia tri cua i la: 2 Gia tri cua i la: 3