Đối Tượng Worksheet Trong Excel Vba

Đối tượng Worksheet trong Excel VBA là một trong những đối tượng được sử dụng thường xuyên nhất trong khi tự động hoá các tác vụ với VBA.

Đối tượng Worksheet đại diện cho các sheet trong Workbook, tức là mỗi Workbook chứa một hoặc nhiều Worksheet.

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

Phương thức Activate của đối tượng Worksheet trong VBA được sử dụng để kích hoạt một Worksheet cụ thể của một Workbook đang được kích hoạt.

Tại sao chúng ta cần phải kích hoạt một Worksheet bằng VBA?

Khi chúng ta phải xử lý nhiều Worksheet (sheet trong một Workbook) và bạn muốn đọc hoặc ghi vào một Worksheet (sheet) cụ thể thì bạn phải kích hoạt Worksheet đó.

Cú pháp: Worksheets("Worksheet Name").Activate ' Or Worksheets("Worksheet Index").Activate

Áp dụng cú pháp trên bạn sẽ kích hoạt được đối tượng Worksheet cụ thể của một Workbook đang được kích hoạt.

Ví dụ 1: Activate Worksheet trong VBA với tên của Worksheet Sub ActiveWorksheetExample1() ' sử dụng tên của một Worksheet Worksheets("data").Activate 'Or Sheets("data").Activate End Sub Ví dụ 2: Activate Worksheet trong VBA với chỉ số của Worksheet Sub ActiveWorksheetExample1() ' sử dụng tên của một Worksheet Worksheets(2).Activate 'Or Sheets(2).Activate End Sub Cách tiếp cận tốt nhất

Lưu ý: Luôn luôn sử dụng tên của Worksheet, thay vì chỉ số của Worksheet. Và cách tiếp cận tốt nhất là gán Worksheet cho một đối tượng và sau đó làm bất cứ nhiệm vụ nào bạn muốn làm với đối tượng Worksheet cụ thể đó.

Tạo biến tham chiếu đến Worksheet

Vấn đề: Khi bạn phải làm việc với nhiều Workshet (nhiều sheet), mỗi Workbook có nhiều Worksheet. Bạn phải sử dụng phương thức Activate với hết Workshet này đến Workshet khác để đọc hoặc ghi dữ liệu từ chúng, điều này có thể dẫn đến mã rối rắm, khó hiểu khiến bạn lúng túng.

Giải quyết vấn đề

Để giải quyết vấn đề trên, có một giải pháp cho bạn đó là với mỗi Worksheet bạn tạo ra một biến tham chiếu. Sau đó, bất cứ khi nào muốn sử dụng (Activate) Worksheet nào bạn chỉ cần tham chiếu đến biến tương ứng.

Ví dụ:

Sub vidu3() ' khai báo đối tượng wb Dim wb As Workbook ' khai báo đối tượng ws Dim wsInput As Worksheet Dim wsOutput As Worksheet ' gán wb cho active Workbook Set wb = Application.ActiveWorkbook ' gán wsInput cho đối tượng Worksheet có tên "input" Set wsInput = wb.Sheets("input") ' gán wsOutput cho đối tượng Worksheet có tên "output" Set wsOutput = wb.Sheets("output") End Sub

Xem ví dụ cụ thể tại ví dụ đối tượng Workbook và Worksheet

Phương thức Copy

Phương thức Copy của đối tượng Worksheet trong VBA được sử dụng để sao chép một Worksheet từ vị trí này sang ví trí khác trong cùng một Workbook hoặc Workbook đang tồn tại hoặc Workbook mới khác.

Cú pháp: Sheets("Worksheet Number").Copy([Before], [After]) Ví dụ 1: Copy Worksheet trong VBA với Before

Ví dụ sau sao chép sheet “Sheet3” tới vị trí trước sheet đầu tiên trong cùng Workbook. Trường hợp ‘1’ đại diện cho số chỉ mục Worksheet đầu tiên.

Sub CopySheet_Beginning1() Worksheets("Sheet3").Copy Before:=Worksheets(1) End Sub

Ví dụ trên, chúng ta sao chép worksheet đang hoạt động đến vị trí đầu tiên trong cùng Workbook.

Sub CopySheet_Beginning2() chúng tôi Before:=Worksheets(1) End Sub Ví dụ 2: Copy Worksheet trong VBA với After

Ví dụ sau sao chép sheet “Sheet3” tới vị trí trước sheet cuối cùng trong cùng Workbook. Trường hợp Worksheets.Count đại diện cho số chỉ mục Worksheet cuối cùng.

Sub CopySheet_Ending1() Worksheets("Sheet3").Copy After:=Worksheets(Worksheets.Count) End Sub

Ví dụ trên, chúng ta sao chép worksheet đang hoạt động đến vị trí cuối cùng trong cùng Workbook.

Sub CopySheet_Ending2() chúng tôi After:=Worksheets(Worksheets.Count) End Sub Phương thức Delete Cú pháp: Worksheets("Sheet Name").Delete Ví dụ 1: Xóa Worksheet trong VBA

Ví dụ sau xóa sheet có tên “Sheet2” từ một Workbook.

Sub DeleteSheetExample1() Sheets("Sheet2").Delete ' or Sheet2.Delete End Sub

Ví dụ trên, sẽ hiển thị hộp thoại Excel và thông báo xác nhận tới người dùng để xóa “Sheet2”.

Ví dụ 2: Xóa Worksheet trong VBA Sub DeleteSheetExample1() ActiveSheet.Delete End Sub

Ví dụ trên, chúng ta thực hiện xóa đối tượng Worksheet đang hoạt động từ một Workbook bằng cách sử dụng phương thức Delete của đối tượng Worksheet.

Ví dụ 3: Xóa Worksheet trong VBA – không hiển thị alert Sub DeleteSheetExample1() Application.DisplayAlerts = False Sheets("Sheet2").Delete Application.DisplayAlerts = True End Sub

Ví dụ trên, xóa “Sheet2” nhưng KHÔNG hiển thị hộp thoại Excel thông báo xác nhận tới người dùng.

Tìm hiểu thêm: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-object-excel

Template Excel Là Gì? Tìm Hiểu Về Template Excel Là Gì?

1 – Template Excel là gì?

“Template Excel” hay còn gọi là “Microsoft Excel Template” là một tính năng được phát triển để tạo ra những MẪU CÓ SẴN. Những mẫu này có thể giúp bạn nhập liệu ngay mà không cần thao tác thêm với hàng, cột.Template trong Excel hay còn gọi là “Microsoft Excel Template” là một tính năng được phát triển để tạo ra những MẪU CÓ SẴN.

Những mẫu này có thể giúp bạn nhập liệu ngay mà không cần thao tác thêm với hàng, cột. TEMPLATE TRONG EXCEL, những mẫu bảng tính có sẵn được tích hợp trong công cụ văn phòng có những ứng dụng cực kỳ to lớn mà không phải kế toán hay nhân viên văn phòng nào cũng biết! Template trong Excel lưu lại tất cả: từ cấu trúc, công thức, hàm cho đến cả các đoạn mã VBA.

Hình 1: Template Excel là gì?

1.1 – Khi nào bạn cần dùng Template trong Excel?

Ứng dụng của Template Excel trong công việc, học tập là rất nhiều. Từ các mẫu: quản lý học tập, thời khóa biểu, lịch cho đến các mẫu phức tạp như: bảng chấm công, báo cáo tài chính, bảng báo giá tất cả trong số đó đều là những mẫu mà có thể bạn phải dùng nhiều lần.

Thay vì mỗi lần muốn sử dụng, bạn phải thiết kế mới, thì với template excel, bạn chỉ cần thiết kế nó lần đầu và lưu lại thành một file template trong máy.

1.2 – Cách sử dụng Template trong Excel như thế nào?

Đây là bước đầu tiên bạn cần phải làm. Bảng tính mẫu cũng giống như những bảng tính bình thường mà bạn vẫn làm, nó phục vụ cho mục đích của bạn. Hãy tạo một bảng tính với tất cả định dạng, tên các trường, công thức hay có thể là tô màu, trang trí cho bảng tính đó.

Tiếp theo, bạn cần lưu bảng tính mẫu này. Thông thường, bạn có thể bấm Ctrl+S hoặc F12 và lưu file. Tuy nhiên, đối với bảng tính bạn muốn đặt làm Template.

Khi lưu, bạn cần chọn lại định dạng ở mục Save as Type là Excel Template. Rồi nhấn OK. Mặc định, tất cả các file Excel Template đều sẽ được lưu ở thư mục chứa Template có đường dẫn:[junkie-alert style=”green”] C:Documents and SettingsAccountApplication DataMicrosoftTemplateVới Account là tài khoản máy tính đang sử dụng[/junkie-alert]

Các mẫu Template đều được lấy từ trong thư mục này. Bởi vậy, bạn NÊN lưu thêm các file template quan trọng vào một folder khác phòng các trường hợp như lỗi ổ cứng, lỗi wins.

1.3 – Mở một file Template có sẵn hoặc Template do bạn tạo ra

Để mở một file Template trong Excel, bạn thực hiện như sau:

Hình 2: Mở một file Template có sẵn hoặc Template do bạn tạo ra

1.4 – Tạo các Tab riêng để quản lý Template tốt hơn

Khi bạn nhấn lưu một file Template, thay vì để nó lưu mặc định trong thư mục Templates, hãy nhấn vào nút Creat New Folder như hình dưới. Một hộp thoại mới hiện ra cho phép bạn đặt tên cho Tab này (mình đặt tạm là Báo cáo thuế). Xong xuôi, bạn nhìn hình phía dưới, file template được lưu lại đã nằm trong tab Báo cáo thuế.

Hình 3: Share một số mẫu Template thường dùng

2 – Kết luận

“Template Excel” hay còn gọi là “Microsoft Excel Template” là một tính năng được phát triển để tạo ra những MẪU CÓ SẴN. Những mẫu này có thể giúp bạn nhập liệu ngay mà không cần thao tác thêm với hàng, cột.Template trong Excel hay còn gọi là “Microsoft Excel Template” là một tính năng được phát triển để tạo ra những MẪU CÓ SẴN.

Hàm Lookup Trong Excel Là Gì?

Hàm LOOKUP Dùng để dò tìm một giá trị từ một dòng hoặc một cột trong một dãy ô hoặc một mảng giá trị. Hàm LOOKUP() có hai dạng: Vec-tơ (vector form) và Mảng (array form) – Dạng Vec-tơ: LOOKUP() tìm kiếm trên một dòng hoặc một cột, nếu tìm thấy sẽ trả về giá trị của ô cùng vị trí trên dòng (hoặc cột) được chỉ định. – Dạng Mảng: LOOKUP() tìm kiếm trên dòng (hoặc cột) đầu tiên của một mảng giá trị, nếu tìm thấy sẽ trả về giá trị của ô cùng vị trí trên dòng (hoặc cột) cuối cùng trong mảng đó. Vector form (dạng vec-tơ) – Cú pháp: LOOKUP(lookup_value, lookup_vector, result_vector) lookup_value: Là giá trị LOOKUP() sẽ tìm kiếm trong lookup_vector. Nó có thể là một số, một ký tự, một giá trị logic, một tên đã được định nghĩa của một vùng ô hoặc một tham chiếu đến một giá trị. lookup_vector: Là một vùng mà chỉ gồm một dòng (hoặc một cột) có chứa lookup_value. Những giá trị chứa trong vùng này có thể là một số, một ký tự hoặc một giá trị logic. – lookup_vector phải được sắp xếp theo thứ tự tăng dần, nếu không, LOOKUP() có thể cho kết quả không chính xác. – Nếu không tìm thấy lookup_value trong lookup_vector thì LOOKUP() sẽ lấy giá trị lớn nhất mà nhỏ hơn hoặc bằng lookup_value. – Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong lookup_vector thì LOOKUP() sẽ báo lỗi #NA! result_vector: Là một vùng mà chỉ gồm một dòng (hoặc một cột) chứa giá trị trả về. Kích thước của result_vector bắt buộc phải bằng kích thước của lookup_vector. Array form (dạng mảng) Cú pháp: LOOKUP(lookup_value, array) lookup_value: Là giá trị LOOKUP() sẽ tìm kiếm trong array. Nó có thể là một số, một ký tự, một giá trị logic, một tên đã được định nghĩa của một vùng ô hoặc một tham chiếu đến một giá trị. – Nếu không tìm thấy lookup_value trong array thì LOOKUP() sẽ lấy giá trị lớn nhất mà nhỏ hơn hoặc bằng lookup_value. – Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong cột hoặc hàng đầu tiên trong array thì LOOKUP() sẽ báo lỗi #NA! array: Là một vùng chứa lookup_value, có thế là số, ký tự, hoặc giá trị logic. Dạng mảng của LOOKUP() gần tương đương như hàm VLOOKUP() hoặc HLOOKUP(). Khác biệt ở chỗ VLOOKUP() và HLOOKUP() tìm kiếm trên cột (hoặc dòng) đầu tiên, còn LOOKUP() tìm kiếm trên cột hoặc trên dòng tùy thuộc vào dạng mảng được khai báo: – Nếu array là mảng có số cột nhiều hơn số dòng thì LOOKUP() sẽ tìm trên dòng đầu tiên. – Nếu array là mảng có số dòng nhiều hơn số cột thì LOOKUP() sẽ tìm trên cột đầu tiên. – Trường hợp array là mảng có số dòng bằng số cột thì LOOKUP() sẽ tìm trên cột đầu tiên. – VLOOKUP() và HLOOKUP() lấy kết quả trên cột (hoặc) dòng được chỉ định, còn LOOKUP() luôn luôn lấy kết quả trên dòng (hoặc cột) cuối cùng. – Các giá trị trên dòng (hoặc cột) đầu tiên của array phải được sắp xếp theo thứ tự tăng dần, nếu không, LOOKUP() có thể cho kết quả không chính xác.

Lỗi #N/A Trong Excel Là Gì

Lỗi #N/A trong Excel là gì – nguyên nhân và các sửa lỗi #N/A trong các hàm VLOOKUP, HLOOKUP, LOOKUP hoặc MATCH của Excel. Nhiều người không biết lỗi #N/A xảy ra khi nào, ý nghĩa chữ viết tắt n/a ra sao và hướng giải quyết. Phải nói, dân văn phòng đã không lạ gì khi xuất hiện thông báo #n/a trên bảng tính Excel, quan trọng hơn cả là bạn phải biết được hướng khắc phục để công việc mang lại kết quả.

Lỗi #N/A trong Excel là gì?

Lỗi #N/A trong Excel là lỗi xuất hiện khi lệnh thực thi không tìm thấy giá trị, nguyên nhân có thể giá trị tra cứu không tồn tại hoặc công thức Excel ghi chưa chính xác. Lỗi Lỗi #N/A xuất hiện trên tất cả các phiên bản Excel 2003, 2007, 2010, 2013 và cả 2023 chứ không của riêng bản Excel nào.

Chữ N/A trong tiếng Anh có thể hiểu là Not Available – No Answer – Not Applicable, nghĩa là không sẵn có – không tìm thấy – không áp dụng được. Thông thường, lỗi #N/A xuất hiện khi chúng ta thực hiện các hàm VLOOKUP, HLOOKUP, LOOKUP hoặc MATCH trên Excel.

Phân loại và cách sửa lỗi #N/A trên Excel

Xuất hiện lỗi #N/A khi viết Hàm do không cố định vùng tìm kiếm trước khi sao chép công thức: Bởi vì không cố định vùng tìm kiếm, nên khi copy công thức thì vùng tìm kiếm sẽ thay đổi theo, từ đó dẫn tới thông báo lỗi #N/A.

Lỗi #N/A do kết hợp hàm các hàm Vlookup, Hlookup với các hàm Mid, Right, Left mà giữa các hàm sai về định dạng (số và văn bản). Vì vậy, cách xử lý lỗi #N/A trường hợp này thì bạn chuyển định dạng số trong hàm Mid (Rigt, Left) về dạng văn bản.

Lỗi #N/A khi nhìn thấy có điều kiện tìm kiếm trong vùng điều kiện, vốn rất phổ biến và khó để xử lý. Đó là do điều kiện tìm kiếm hoặc giá trị tương ứng ở vùng điều kiện tìm kiếm thừa dấu cách ở phía sau. Cách sửa lỗi #N/A trường hợp này là chọn lần lượt từng giá trị.

Microsoft Excel Là Gì ?

Microsoft Excel là chương trình xử lý bảng tính nằm trong bộ Microsoft Office của hãng phần mềm Microsoft được thiết kế để giúp ghi lại, trình bày các thông tin xử lý dưới dạng bảng, thực hiện tính toán và xây dựng các số liệu thống kê trực quan có trong bảng từ Excel. Cũng như các chương trình bảng tính Lotus 1-2-3, Quattro Pro… bảng tính của Excel cũng bao gồm nhiều ô được tạo bởi các dòng và cột, việc nhập dữ liệu và lập công thức tính toán trong Excel cũng có những điểm tương tự, tuy nhiên Excel có nhiều tính năng ưu việt và có giao diện rất thân thiện với người dùng.

Trước đây, Microsoft đã giới thiệu một phần mềm bảng tính được gọi là Multiplan vào năm 1982, phần mềm rất được phổ biến trên hệ điều hành CP/M, nhưng trên MS-DOS thì nó đã không còn được như vậy. Điều đó đã thúc đẩy sự phát triển 1 chương trình bảng tính mới mang tên Excel với khẩu hiệu “‘do everything 1-2-3 does and do it better'” (làm mọi thứ (Lotus) 1-2-3 có thể làm và còn làm tốt hơn). Phiên bản đầu tiên của Excel được phát hành lần đầu tiên trên máy MAC năm 1985 và trên Windows (đánh số 2.0 xếp ngang hàng với MAC và được tích hợp với môi trường run-time của Windows) vào tháng 11 năm 1987. Lotus đã quá chậm trong việc phát hành 1-2-3 cho Windows và cho đến cuối năm 1988, Excel bắt đầu bán được nhiều hơn so với 1-2-3 và giúp Microsoft đạt được vị trí hãng phát triển phần mềm hàng đầu. Trung bình cứ 2 năm Microsoft lại ra mắt phiên bản mới của Excel 1 lần hoặc lâu hơn. Phiên bản gần đây nhất là Excel 2023.

Excel cung cấp cho người sử dụng khá nhiều giao diện làm việc. Tuy nhiên, bản chất thì chúng đều giống nhau. Excel là chương trình đầu tiên cho phép người sử dụng có thể thay đổi font, kiểu chữ hay hình dạng của bảng tính, excel cũng đồng thời gợi ý cho người sử dụng nhiều cách xử lý vấn đề thông minh hơn. Đặc biệt là excel có khả năng đồ thị rất tốt.

Lần đầu tiên xuất hiện trong gói Microsoft Office năm 1993. Microsoft Word và Microsoft PowerPoint đã có 1 giao diện khá giống với Excel.

Từ năm 1993, Excel đã bao gồm Visual Basic for Applications (viết tắt là VBA). Một ngôn ngữ lập trình dựa trên nền tảng của Visual Basic, nó đã được thêm vào giúp tự động hóa các công việc trong Excel và cho phép người dùng tạo ra những hàm tùy biến. VBA là một chương trình hữu ích, trong những phiên bản gần đây, nó đã bao gồm những môi trường phát triển tổng hợp (IDE). Chức năng ghi lại những đoạn macro có thể tạo ra những đoạn mã VBA cho những hành động có tính chất lặp lại của người sử dụng, cho phép những thao tác thông dụng được tự động hóa, VBA cho phép tạo ra bảng biểu và điều kiện bên trong bảng tính để trực tiếp giao thông với người sử dụng. Ngôn ngữ hỗ trợ sử dụng (nhưng không tạo ra), DLL ActiveX (COM), những phiên bản về sau tăng thêm sự hỗ trợ dành cho các module, cho phép sử dụng các công nghệ lập trình hướng đối tượng cơ bản.

Những hàm tự động được tạo ra bởi VBA đã giúp Excel trở thành một đối tượng cho những virus macro. Đây là một lỗi nghiêm trọng trong Office, cho đến khi những nhà sản xuất phần mềm chống virus bắt đầu phát hiện chúng. Microsoft đã có những biện pháp phòng ngừa những cách sử dụng sai trái bằng cách thêm vào các lựa chọn: Hoàn toàn bỏ đi tính năng macro, kích hoạt macro khi mở workbook hoặc là tin tưởng những macro được công nhận bởi một nguồn đáng tin.

Từ phiên bản 5.0 tới 9.0, Excel đã có những quả trứng phục sinh, mặc dù từ phiên bản 10 Microsoft đã có những tính toán để hạn chế thậm chí hoặc xóa bỏ hẳn những tính năng không được công bố trong các sản phẩm của họ.

SUM: Tính tổng các giá trị trong các ô.

IF: Kiểm tra một điều kiện là đúng hay sai và trả về giá trị cho từng trường hợp.

HLOOKUP: Dùng hàm này khi bạn cần xem một hàng hay một cột và cần tìm một giá trị từ cùng một vị trí trong hàng hay cột thứ hai.

VLOOKUP: Dùng hàm này khi bạn cần tìm thông tin trong một bảng hay một phạm vi theo hàng. Ví dụ, tra cứu họ của một nhân viên theo mã số nhân viên của cô ấy, hoặc tìm số điện thoại của cô ấy bằng cách tra cứu họ của cô ấy (giống như danh bạ điện thoại). Xem video này về cách dùng VLOOKUP.

SUMIF: Tính tổng các giá trị trong một phạm vi đáp ứng tiêu chí mà bạn xác định.

COUNT: Đếm số lượng ô có chứa các số, đồng thời đếm các số có trong danh sách tham đối.

COUNTIF: Một trong các hàm thống kê, để đếm số lượng ô đáp ứng một tiêu chí; ví dụ như để đếm số lần một thành phố nhất định xuất hiện trong danh sách khách hàng.

COUNTA: Đếm số ô không trống trong một phạm vi.

MAX: Trả về giá trị lớn nhất trong tập giá trị.

MIN: Trả về giá trị nhỏ nhất trong tập giá trị.

AVERAGE: Trả về trung bình (trung bình cộng) của các đối số.

LEFT: Trả về một hoặc nhiều ký tự đầu tiên trong một chuỗi, dựa vào số ký tự mà bạn chỉ định.

RIGHT: Trả về một hoặc nhiều ký tự cuối cùng trong một chuỗi, dựa vào số ký tự mà bạn chỉ định.

MID: Hàm MID trả về một số lượng ký tự cụ thể từ một chuỗi văn bản, bắt đầu từ vị trí do bạn chỉ định, dựa vào số lượng ký tự do bạn chỉ định.

VALUE: Chuyển đổi một chuỗi văn bản đại diện cho một số thành một số.

ROUND: Làm tròn một số tới một số chữ số đã xác định.

INT: Làm tròn số xuống tới số nguyên gần nhất.

OR: Là một trong các hàm lô-gic, để xác định xem liệu mọi điều kiện trong một kiểm tra có là TRUE hay không.

AND: Là một trong các hàm lô-gic, để xác định xem liệu tất cả các điều kiện trong một kiểm tra có là TRUE hay không.

DAY: Trả về ngày của ngày tháng thể hiện bằng số sê-ri. Ngày được cung cấp ở dạng số nguyên từ 1 đến 31.

MONTH: Trả về tháng của một ngày được biểu thị bằng số sê-ri. Tháng được trả về dưới dạng số nguyên, từ 1 (tháng 1) tới 12 (tháng 12).

YEAR: Trả về năm tương ứng với một ngày nào đó. Năm được trả về ở dạng số nguyên trong khoảng 1900-9999.

Comments