Hướng dẫn thay đổi vùng in tự động và viết tắt họ tên trên Excel bằng VBA

Làm thế nào để thay đổi vùng in tự động và viết tắt họ tên trên Excel bằng VBA. 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 thay đổi vùng in tự động và viết tắt họ tên trên Excel bằng VBA

1. Cách ứng dụng hàm tự tạo bằng VBA để viết tắt họ tên trên Excel

Trong công việc hàng ngày tại văn phòng, bạn không thể tránh được những công việc phải xử lý danh sách nhân viên, khách hàng như: lọc tên, lọc họ, viết tắt tên để tiện cho báo cáo và quản lý. Trong bài viết này mình sẽ hướng dẫn bạn cách ứng dụng hàm tự tạo bằng VBA để viết tắt họ tên trên Excel sao cho nhanh chóng.

Bạn có một danh sách nhân viên. Bạn muốn viết  tắt họ tên của từng người :

Ví dụ

  • “Nguyễn Văn Hùng”  thành “NV Hùng”

  • “”Lê Thị Lan Anh”” thành “LTL Anh”

Việc này hoàn toàn đơn giản nếu bạn vận dụng VBA như sau :

Bạn insert một module mới :

Insert module mới

Function ghepten(HoTen As Range) As String
If HoTen.Count > 1 Then Exit Function
On Error GoTo Thoat
Dim TMP As Variant, I As Byte
TMP = Split(HoTen.Text)
For I = LBound(TMP, 1) To UBound(TMP, 1) – 1
ghepten = ghepten & Left(CStr(TMP(I)), 1)
Next
ghepten = ghepten & Space(1) & TMP(UBound(TMP, 1))
Thoat: Exit Function
End Function

Cách sử dụng rất đơn giản theo cấu trúc : =ghepten(dữ liệu nguồn)

2. Hướng dẫn thay đổi vùng in tự động trong Excel bằng VBA

Thông thường trong Excel nếu như chúng ta không thiết lập vùng in thì sẽ tự động in toàn bộ những trang in có chứa dữ liệu. Nhưng không phải lúc nào chúng ta cũng cần in toàn bộ sheet, mà chỉ cần in một vùng nhất định trong sheet đó. Điều này được thực hiện thông qua việc thiết lập Print Area trong mục Page Setup.

Thay đổi vùng in tự động trong Excel

Hôm nay chúng ta sẽ cùng nhau tìm hiểu về việc làm thế nào để tự động thiết lập cho Print Area? Bởi thông thường muốn thiết lập Print Are chúng ta đều phải thực hiện một cách thủ công.

2.1. Đối tượng làm việc trong VBA

Đối tượng vùng in của Sheet

Trong các đối tượng của WorkSheet tại VBA chúng ta có đối tượng liên quan tới thiết lập vùng in là PageSetup.PrintArea

Muốn thiết lập vùng in tại Sheet nào chúng ta đặt tên Sheet đó và gọi đối tượng này ra: Tên-Sheet.PageSetup.PrintArea = …………

Đối tượng địa chỉ của vùng in

Để gán 1 vùng (range) vào đối tượng PageSetup.PrintArea thì chúng ta phải gọi ra vùng đó kèm theo thuộc tính Address (địa chỉ)

Thủ tục như sau: Tên-Sheet-chứa-vùng-cần-in.Range(“vùng-cần-in”).Address

Ví dụ:

Vùng cần in của chúng ta là B2:G100, tại Sheet1

Sub PrintArea_Test01() 'Thiết lập vùng in từ B2:G100 tại Sheet1
Sheet1.PageSetup.PrintArea = Sheet1.Range("B2:G100").Address
End Sub

2.2. Cách tạo vùng in tự động thay đổi

Thay vì in từ B2 tới G100, chúng ta muốn vùng in tự động thay đổi từ cột B tới cột G, từ dòng 2 tới dòng cuối cùng có chứa dữ liệu ở cột G:

Sub PrintArea_Test02() 'Thiết lập vùng in tới dòng cuối
Sheet1.PageSetup.PrintArea = Sheet1.Range("B2", Sheet1.Range("G65536").End(xlUp)).Address
End Sub

Như vậy không giới hạn vùng in tới dòng thứ 100, mà tùy theo dòng cuối có dữ liệu ở cột G là dòng bao nhiêu thì vùng in sẽ tự động thay đổi từ B2 tới cột G, dòng cuối.

Tương tự như câu lệnh trên, chúng ta có thể sử dụng 1 cách khác để tìm dòng cuối:

Sub PrintArea_Test03() 'Thiết lập vùng in tới dòng cuối
Sheet1.PageSetup.PrintArea = Sheet1.Range("B2", sheet1.Range("G" & rows.count).End(xlUp)).Address
End Sub

Với 2 cách viết này, chúng ta có thể áp dụng tương tự sang các trường hợp khác, chỉ cần thay đổi vùng tọa độ:

  • Điểm bắt đầu: thay đổi B2
  • Điểm kết thúc: thay đổi cột G

2.3. Thiết lập vùng in theo vùng được chọn:

Đôi khi chúng ta muốn tự tay chọn vùng muốn in thì có thể làm như sau:

Sub PrintArea_Test04() 'Vùng in theo vùng được chọn
Sheet1.PageSetup.PrintArea = Selection.Address
End Sub

Như vậy bài viết đã Hướng dẫn thay đổi vùng in tự động và viết tắt họ tên trên Excel bằng VBA. Chỉ cần vài thao tác đơn giản, bạn đã có thể thay đổi vùng in tự động và viết tắt một cách nhanh chóng. Chúc các bạn thực hiện thành công!

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

CÓ THỂ BẠN QUAN TÂM