Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

KIẾN THỨC

GIỚI THIỆU VỀ METHOD & PROPERTIES


TRONG VBA EXCEL
(dành cho học viên khóa học VBA Excel)

Dưới đây là những nội dung của bài học giới thiệu về Method và Properties
trong khóa học VBA Excel. Nội dung chi tiết từng phần như sau:

1 Làm việc với phương thức Select?

- Để chọn vùng “A3:B7” của worksheet đang thực hiện ta làm như sau:
Range(“A3:B7”).Select
- Trước khi chọn 1 vùng trong sheet nào đó thì nó phải được kích hoạt (vì nó có
thể sẽ chọn 1 vùng trong sheet đang kích hoạt ngoài ý muốn hoặc lỗi).
- Định nghĩa các mã lệnh sau:
//1. Kích hoạt workbook
Workbooks(“Demo.xls”).Activate
//2. Kích hoạt worksheet
Sheets(“Sheet1”).Activate
//3. Chọn vùng A3:B10
Range(“A3:B10”).Select
//4. Chọn nhiều vùng một lúc
Range(“A3:B10, C5:D12”).Select
2 Làm việc với Copy – Paste – Clear – Delete qua bài toán?
 Yêu cầu:
- Chọn vùng A3:F3 định dạng chữ đậm, nghiêng và kích cỡ 14?
- Chọn vùng A4:F14 định dạng chữ nghiêng?
- Chọn vùng A1:F14 sử dụng lệnh copy và dán vào vị trí A20?
- Chọn vùng A20:F26 sử dụng lệnh clear để xóa toàn bộ nội dung cũng
như định dạng này đi?
- Chọn vùng A20:F33 sử dụng lệnh delete để xóa bảng dữ liệu này đi và
di chuyển từ trên xuống dưới?

1|Trang- Khóa học kiến thức VBA Excel – IMIC Education


- Chọn vùng A1:F14 rồi đưa toàn bộ nội dung này sang sheet2,3?

 Mã lệnh VBA:
Sub NghiepVu01()
Range("A3:F3").Select
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Size = 14
End Sub
Sub NghiepVu02()
Range("A4:F14").Select
Selection.Font.Italic = True
End Sub
Sub NghiepVu03()
Range("A1:F14").Copy
Range("A20").PasteSpecial
End Sub

2|Trang- Khóa học kiến thức VBA Excel – IMIC Education


Sub NghiepVu04()
Range("A20:F26").ClearContents
End Sub
Sub NghiepVu05()
Range("A20:F33").Delete xlToLeft
End Sub
Sub NghiepVu06()
'Chu y nghiep vu nay can viet trong ThisWorkBook
'1. Chon bang tinh 1 & thuc hien lenh copy
'Worksheets(1).Range("A1:F14").Copy
Worksheets(1).Select
Range("A1:F14").Copy

'2. Chon bang tinh 2 & thuc hien paste


Worksheets(2).Range("A1").PasteSpecial
'Worksheets(1).Select
'Range("A1").PasteSpecial
End Sub
3 Làm việc với Workbook?
- Sử dụng một số mã lệnh sau để hiểu hơn về workbooks với Immediate.

Lệnh Ý nghĩa
Workbooks.Add - Thêm mới 1 workbook.
?Workbooks(1).Name - Tên workbook đầu tiên.
? Workbooks.Count - Đếm số workbook đang mở.
Workbooks(2).Activate - Kích hoạt workbook 2 để làm việc.
Workbooks(“Demo.xlsx”).Activate - Kích hoạt workbook với tên đã
biết.

3|Trang- Khóa học kiến thức VBA Excel – IMIC Education


ActiveWorkbook.SaveAs - Đổi tên workbook được kích hoạt.
filename := "Demo.xlsx"
Workbooks(3).SaveAs - Đổi tên workbook được kích hoạt.
filename := "Demo.xlsx"
Workbooks(4).SaveAs("Demo02.xlsx") - Đổi tên workbook được kích hoạt.
Workbooks(1).Close - Đóng workbook và không thực
SaveChanges := False hiện lưu sự thay đổi.
Workbooks.Close - Đóng toàn bộ các workbook.

4 Làm việc với Worksheet?


- Sử dụng một số mã lệnh sau để hiểu hơn về worksheet với Immediate.

Lệnh Ý nghĩa
?Cells.Count - Số ô trong 1 sheet
?Rows.Count - Số hàng trong 1 sheet
?Columns.Count - Số cột trong một sheet

a. Nhập dự liệu vào trong Sheets:

- Nhập dữ liệu vào dùng 2 thuộc tính của Range là Value và Formula.
ActiveSheet.Range(“A1:C7”).Value = “=6*10” //Value
ActiveSheet.Range(“A1:C7”).Formula = “=6*10” //Formula
b. Điều khiển worksheet:

Lệnh Ý nghĩa
Worksheets.Add - Thêm mới worksheet.
? worksheets(1).Name - Nhận về tên của worksheet.
Worksheets(3).Select - Chọn worksheet với thứ tự số 3 để làm việc.

4|Trang- Khóa học kiến thức VBA Excel – IMIC Education


Worksheets(Array(1,3,4)).Select - Chọn nhóm worksheet thông qua mảng.
Worksheets(“Sheet1”).Activate - Kích hoạt bảng tính có tên Sheet1.
Worksheets(“Sheet2”).Move Before:= - Di chuyển Sheet2 về đứng trước Sheet1.
Worksheets(“Sheet1”)
Worksheets(“Sheet3”).Move After := - Di chuyển Sheet3 về đứng sau worksheet có
Worksheets(1) thứ tự là 1.
Worksheets(“Sheet2”).Name=”DEMO” - Đổi tên cho Sheet2 thành Demo.
?Worksheets.Count - Đếm số worksheet hiện có.
Worksheets.Add After:= Worksheets - Thêm mới worksheet xuống cuối cùng.
(Worksheets.Count)
Worksheets(“Sheet3”).Visible=false - Ẩn worksheet có tên là Sheet3.
Worksheets(Array - Ẩn nhiều worksheet thông qua mảng phần
(“Sheet1”,”Sheet3”)).Visible=false tử với tên Sheet.
Worksheets(“Demo”).Delete - Xóa worksheet với tên là Demo.

c. Làm việc với đối tượng khối ô – Range?


- Sử dụng để tham chiếu đến ô hoặc khối ô trong WorkSheet.
- Tham khảo qua các mã lệnh sau:

Lệnh Ý nghĩa
Range(“A1”).Select - Chọn ô A1.
Range(“A1:B12”).Select - Chọn khối ô từ A1 đến B12.
Range(“A1:A12 , A15:F15” ).Select - Chọn 02 khối ô khác nhau.
Range(“A2,F5,G5”).Select - Chọn các ô riêng lẻ.
Range(“D:D”).Select - Chọn cột D
Range(“8:8”).Select - Chọn hàng số 8
Range(“B:F”).Select - Chọn cột B đến cột F.
Range(“3:8”).Select - Chọn hàng số 3 đến số 8.

5|Trang- Khóa học kiến thức VBA Excel – IMIC Education


Range(“3:3,10:10,20:20”).Select - Chọn hàng số 3, 10 và 20.
Range(“D:D,F:F,H:H”).Select - Chọn các cột D, F, H.

d. Thuộc tính Selection?


- Trả về đối tượng được chọn trong cửa sổ hiện thời.
- Thiết lập vùng chọn trên bảng tính từ ô A1 đến E10.
- Xóa toàn bộ nội dung đang được lựa chọn trong bảng tính có tên Sheet1.
- Tham khảo mã lệnh sau:
WorkSheets(“Sheet1”).Activate
Range(“A1:E10”).Select
Selection.Clear
e. Thuộc tính Cells?
- Sử dụng để nhận về ô hiện hành.
- Cú pháp: Cells(row, column)
- Tham khảo các mã lệnh sau:

Lệnh Ý nghĩa
Cells(3,1).Select hoặc - Chọn ô A3 trong worksheet hiện hành.
Cells(3,”A”).Select
Range(Cells(4,1), Cells(8,1)).Select - Chọn khối ô dựa vào chỉ số ô hiện hành.
- Khối ô được chọn từ A4 đến A8.
Cells.Select hoặc Cells().Select - Chọn tất cả các ô trong worksheet hiện thời.

- Để nhận về giá trị 100 trong ô A7 trong sheet1 sử dụng:


WorkSheets(“Sheet1”).Cells(7,1).Value = 100
- Thiết lập công thức cho ô A7:
ActivateSheet.Cells(7,1).Formula = “=Sum(A2:B5)”

6|Trang- Khóa học kiến thức VBA Excel – IMIC Education


f. Làm việc với thuộc tính Offset?
- Sử dụng để tham chiếu đến ô có quan hệ tùy chọn.
- Cú pháp:
Offset (row_down, column_right)
 Row Down: Nếu là số nguyên dương thì Hàng đi xuống và số âm thì ngược
lại.
 Column Right: Nếu là số nguyên dương thì Cột đi sang phải và số âm thì
ngược lại.
- Tham khảo các mã lệnh sau:

Lệnh Ý nghĩa
Range(“A1”).Offset(2,4).Select - Bắt đầu từ ô A1.
- Chọn tới ô với Hàng 2, Cột 4.
Range(“B10”).Offset(-3,-1).Select - Bắt đầu từ ô B10.
- Chọn tới ô với Hàng -3, Cột -1.
ActiveCell.Offset(-2,2).Select - Bắt đầu từ ô hiện hành.
- Chọn tới ô với Hàng -2, Cột 2.

g. Làm việc với thuộc tính Rows và Columns?


- Sử dụng để tính toán với Hàng và Cột.
- Tham khảo các mã lệnh sau:

Lệnh Ý nghĩa
Rows(6).Select - Chọn Hàng với chỉ số thứ 6.
Rows.Select - Chọn toàn bộ các Hàng.
Columns(2).Select - Chọn Cột với chỉ số thứ 2.
Columns(“B”).Select - Chọn Cột B.
Columns.Select - Chọn toàn bộ các Cột.

7|Trang- Khóa học kiến thức VBA Excel – IMIC Education


- Sử dụng thuộc tính của Rows:
Worksheets(“Sheet2”).Rows(2).Font.Bold = True
Msgbox “Vung chon co: ”& Selection.Rows.Count &” hang.”

h. Thuộc tính R1C1?


- Tham chiếu đến ô mà được xác định bởi số hàng & cột.
- Cú pháp: R[m]C[n]
 Số Dương: m hàng phía dưới và n là cột bên phải so với ô hiện thời.
 Số Âm: Ngược lại lên trên và sang trái.
- Ví dụ 01: Nhập vào công thức Sum(“A2:A4”) trong ô A7?
Range(“A5”).Select
ActivateCell.FormulaR1C1 = “=Sum(R[-3]C:R[-1]C)”
- Ví dụ 02: Nhập vào công thức = B1-B4 trong ô B8? <học viên thực hiện>
- Ví dụ 03: Nhập vào công thức Sum trong ô A8? <học viên thực hiện>
Worksheets("Demo").Select
Range("A8").FormulaR1C1 = "= sum(R[-7]C:R[-1]C[2])"

i. Thuộc tính End?


- Sử dụng để di chuyển đến ô hiện hành trong Sheet.

8|Trang- Khóa học kiến thức VBA Excel – IMIC Education


- Ví dụ như:
 Ô đầu tiên của cột đầu tiên.
 Cột cuối cùng
 Hàng đầu tiên, hàng cuối cùng
- Tham khảo các mã lệnh sau:

Lệnh Ý nghĩa
ActiveCell.End(xlToRight).Select - Chọn ô của cột cuối cùng so với ô hiện thời.
ActiveCell.End(xlToLeft).Select - Chọn ô của cột đầu tiên so với ô hiện thời.
ActiveCell.End(xlUp).Select - Chọn ô của hàng đầu tiên so với ô hiện thời.
ActiveCell.End(xlDown).Select - Chọn ô của hàng cuối cùng so với ô hiện thời.
 Chú ý:
- Các Hàng | Cột cần có dữ liệu đầy đủ.
- Sẽ chọn không đúng yêu cầu nếu có Hàng trống | Cột trống dữ liệu.

j. Xác định thông số ô và khối ô?


- Khi cần xác định thông tin như thứ tự hàng, cột, số ô, số hàng hay số cột, địa
chỉ,…của khối bạn chọn.
- Ta có thể sử dụng các phát biểu lệnh sau:

Lệnh Ý nghĩa
?Selection.Row - Trả về Số thứ tự hàng đầu tiên của khối ô chọn.
? Selection.Column - Trả về Số thứ tự Cột đầu tiên.
? Selection.Rows.Count - Đếm số Hàng trong khối ô được chọn.
? Selection.Columns.Count - Đếm số Cột trong khối ô được chọn.
? Selection.Address - Trả về địa chỉ khối ô được chọn.
? Selection.Cells.Count - Trả về số ô trong khối ô được chọn.
?Range(“B4”).Formula - Trả về công thức trong ô B4.

9|Trang- Khóa học kiến thức VBA Excel – IMIC Education


? Range(“B4”).Value - Trả về giá trị trong ô B4.

k. Di chuyển, sao chép và xóa ô hoặc khối ô?


- Sử dụng để di chuyển, sao chép, xóa ô hoặc khối ô trong VBA Excel.
- Tham khảo các mã lệnh sau:

Lệnh Ý nghĩa
Range("A1").Cut Destination - Di chuyển giá trị từ ô A1 đến ô A12.
:= Range("A12")
Range("A2").Copy Destination - Sao chép dữ liệu từ ô A2 đến vùng dữ liệu từ
:= Range("E2:E6") E2 đến E6.
Range(“A1”).Clear - Xóa toàn bộ thiết lập trong ô A1.
Range(“A1”).ClearContents - Chỉ xóa dữ liệu trong ô A1.
Range(“A1”).ClearFormats - Chỉ xóa định dạng trong ô A1.
Range(“A1”).ClearComments - Chỉ xóa comment trong ô A1.
- Chú ý:
 Không thể thực hiện xóa đối với các ô Merge Cell.
 Xuất hiện lỗi khi xóa ô đã nhập.

l. Làm việc với thuộc tính Value?


- Giá trị được chứa trong một ô.

10 | T r a n g - K h ó a h ọ c k i ế n t h ứ c V B A E x c e l – I M I C E d u c a t i o n
- Chỉ xác định được giá trị trong một ô nhưng lại có thể gán giá trị cho nhiều ô
đồng thời.
- Tham khảo mã lệnh sau:
Worksheets(“Sheet1”).Range(“A1:B5”).Value = 100
Worksheets(“Sheet1”).Range(“A1:B5”) = 100
m. Làm việc với thuộc tính HasFormula?
- Trả về True nếu ô được chọn chứa công thức và ngược lại.
- Nếu một vùng có nhiều hơn 1 ô, các ô trong vùng này đều có công thức thì kq là
True.
- Nếu chỉ 1 ô trong vùng có công thức  null
- Ví dụ tham khảo về HasFormula:
Sub Demo()
Worksheets(“Sheet1”).Activate
Set obj = Application.InputBox(prompt:=”Chon vung trong Sheets”,
Type:=8)
If obj.HasFormula = True then
MsgBox “Các ô đều chứa công thức!”
End If
End Sub

n Làm việc với Thuộc tính Font?

- Sử dụng để định dạng Font chữ cho các ô hoặc khối ô.


- Tham khảo các mã lệnh sau:
Range(“A7”).Font //Trả về font của A7
Range(“A1:F11”).Font.Bold = True

l Làm việc với thuộc tính Interior:

- Sử dụng tương tự như thuộc tính Font.

11 | T r a n g - K h ó a h ọ c k i ế n t h ứ c V B A E x c e l – I M I C E d u c a t i o n
- Ví dụ về Interior: Khi muốn thay đổi màu nền của ô A5 sang màu đỏ (màu đỏ
trong bảng danh sách mã màu với ColorIndex).
- Ví dụ mã lệnh:
Range(“A5”).Interior.ColorIndex = 3
- ColorIndex có giá trị từ 1 đến 56 tương tự với màu trong excel hoặc có thể dùng
hằng số vbBlack, vbBlue,…

Bài toán: Hãy sử dụng toàn bộ những kiến thức đã được học để làm hoàn chỉnh bài
tập sau:

 Yêu cầu:
- Định dạng tiêu đề báo cáo như hình trên.
- Định dạng tiêu đề bảng nội dung với Chữ đậm và Màu nền chứa dữ liệu.
- Viết công thức xử lý tính toán cho các trường thông tin sau:
 Điền ngày công chuẩn = 25 cho tất cả các nhân viên.
 Điền số tiền Thưởng, được tính như sau:
 TGĐ, PGĐ : 3.000.000 đ
 TP, PL, PM: 1.000.000 đ
 TV, Tester, KT: 500.000 đ
 GV: 700.000 đ
 Dev: 600.000 đ
12 | T r a n g - K h ó a h ọ c k i ế n t h ứ c V B A E x c e l – I M I C E d u c a t i o n
 Điền BHXH = 200.000 cho tất cả các nhân viên.
 Lương tháng = (Lương thử việc + Lương chính thức)/Ngày
công chuẩn / Ngày công thực tế.
 Tổng lương = Lương Tháng + Thưởng + Ăn Ca
 Thực lĩnh = Tổng lương – Tạm ứng – BHXH – Công đoàn
- Lấy dữ liệu chi tiết của từng thành viên điền sang bảng tính khác với tên
đầy đủ của thành viên đó.

13 | T r a n g - K h ó a h ọ c k i ế n t h ứ c V B A E x c e l – I M I C E d u c a t i o n

You might also like