Hướng dẫn cách cố định các đối tượng với hàng, cột và viết hàm tìm dòng cuối cùng có dữ liệu trong VBA

Làm thế nào để cố định các đối tượng với hàng, cột và viết hàm tìm dòng cuối cùng có dữ liệu trong VBA một cách nhanh chóng nhất. Hãy đọc bài viết dưới đây do eLib biên soạn để tìm cho mình được câu trả lời chính xác nhất nhé. 

Hướng dẫn cách cố định các đối tượng với hàng, cột và viết hàm tìm dòng cuối cùng có dữ liệu trong VBA

1. Hướng dẫn cách cố định các đối tượng với hàng, cột trong Excel

Mặc định trong Excel, khi ta thực hiện thêm các đối tượng vào trong trang tính như các hình ảnh hay các hình Shapes thì các đối tượng này sẽ tự động co giãn và tự động điều chỉnh các chiều, các cạnh của hình hay Shape, hình đó khi ta thay đổi độ rộng của cột cũng như độ cao của dòng trong Excel.

Vậy thì để giải quyết vấn đề đó ta sẽ làm như thế nào???

Sau khi thực hiện chèn đối tượng vào Excel, để không muốn các đối tượng này bị thay đổi các cạnh tự do thì ta sẽ ấn chuột phải vào đối tượng đó và chọn Format Shapes…

Hộp thoại Format Shape hiện ra, tại đây ta chọn nhóm Size & Properties.

Trong phần Properties mặc định sẽ là Move and size with cells (Di chuyển với sự thay đổi của ô trong Excel). Tùy chọn đó thì khi bạn điều chỉnh độ rộng của cột hay độ cao của dòng thì các Shapes hay hình ảnh sẽ dịch chuyển theo làm thay đổi hình dạng ban đầu.

Ta sẽ chọn tùy chọn thứ 3 là Don’t move or size with cells. Thì lúc này các đối tượng sẽ giữ nguyên được kích thước, cũng như là hình dạng khi bạn thay đổi các kích thước của ô, cột và dòng trong trang tính.

2. Hướng dẫn viết hàm tìm dòng cuối cùng có dữ liệu trong VBA

Để hiểu hơn về cách tìm dòng cuối trong VBA, bạn có thể tham khảo bài viết ngay dưới đây để nắm được cơ bản về một số Code.

Một số code vba để tìm dòng cuối cùng có dữ liệu trong excel

Tuy nhiên, bài viết trên chưa đề cập tới cách viết hàm để tìm dòng cuối. Vì lý do đó nên trong bài viết này, Gitiho.com sẽ hướng dẫn các bạn cách viết hàm trả về dòng cuối.

Cụ thể ta sẽ có Function đơn giản như sau: 

Function DongCuoi(Ws As Worksheet, Col As Variant) As Long

DongCuoi = Ws.Cells(Rows.Count, Col).End(xlUp).Row

End Function

Bạn có thể hiểu hàm đó như sau:

  • Hàm có tên là DongCuoi, ta cần truyền cho hàm này 2 đối số.
  • Đối số thứ nhất là tên Sheet thuộc kiểu Worksheet – đây là Sheet mà bạn muốn tìm dòng cuối trong Sheet đó.
  • Đối số thứ 2 là Col thuộc kiểu Variant – đây là Column trong Sheet mà bạn muốn trả về dòng cuối cho cột đó.
  • Hàm trả về là 1 số thuộc kiểu Long

Function trả về dòng cuối chỉ đơn giản như sau:

DongCuoi = Ws.Cells(Rows.Count, Col).End(xlUp).Row

Nếu như bạn tham khảo bài viết về một số Code VBA tìm dòng cuối mà mình đã gắn link ở trên thì chắc hẳn không quá khó hiểu phải không nào.

Ta thấy, kết quả trả về của hàm chính xác, dòng cuối cùng có dữ liệu trong Sheet1 cột B là dòng 4.

Vì sao biết Col lại là kiểu Variant là để đảm bảo là đối số Col bạn truyền vào có thể là tên cột (VD: “A”,”B”,…..) hoặc cũng có thể là số thứ tự của cột (VD: cột A tương đương với cột 1, cột D tương đương với cột 4,…). Thì hàm DongCuoi này vẫn chấp nhận và trả về kết quả đúng cho bạn.

Bạn có thể thấy rõ điều này bởi hình trên, trong cửa sổ Immediate mình đã viết hàm này với đối số truyền vào theo 2 cách và kết quả trả về hoàn toàn giống nhau. Ta có thể không cần khai báo kiểu cho biến Col này (mặc định là kiểu Variant)

Như vậy là bạn đã có thể tự tay tạo cho mình một hàm trong VBA để tìm được dòng cuối cùng có dữ liệu rồi. Khi nào bạn cần xác định dòng cuối của một cột trong Sheet nào đó thì bạn chỉ cần gõ tên hàm này và truyền 2 đối số cho hàm, thì bạn đã có kết quả mình mong muốn rồi. Chúc các bạn thành công!

 

Ngày:11/08/2020 Chia sẻ bởi:

CÓ THỂ BẠN QUAN TÂM