Hướng dẫn ẩn và bỏ ẩn nhiều sheet cùng lúc và Cách loại bỏ liên kết tới file khác bằng VBA
Làm thế nào để ẩn và bỏ ẩn nhiều sheet cùng lúc và Cách loại bỏ liên kết tới file khác bằng VBA trong Excel 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é.
Mục lục nội dung
1. Phương pháp ẩn và bỏ ẩn nhiều sheet cùng lúc bằng VBA
1.1. Bỏ ẩn tất cả các Sheet
Sub Unhide_AllSheet() 'Bỏ ẩn tất cả các Sheet
Dim ws As Worksheet
On Error Resume Next 'Bỏ qua các lỗi có thể xảy ra
'Bỏ ẩn các sheet
For Each ws In Sheets
ws.Visible=True
Next
'Vô hiệu hóa bất kỳ lỗi nào xảy ra
On Error Goto 0
End Sub
Sử dụng vòng lặp For – Next để kiểm tra trên tất cả các Sheet có trong Workbook, nếu có sheet nào thì sẽ hiển thị Sheet đó (Visible = True)
Trong quá trình kiểm tra và bỏ ẩn các sheet, đôi khi có xảy ra lỗi không biết trước, do đó gắn thêm các lệnh xử lý lỗi để bẫy lỗi có thể xảy ra.
1.2. Ẩn một vài Sheet xác định
Nếu như bạn đã xác định rõ một vài Sheet cụ thể sẽ được ẩn thì chúng ta có thể thực hiện thao tác ẩn sheet như sau:
Sub Hide_Sheet_Test01() 'Ẩn những Sheet cụ thể
Dim ar As Variant
Dim ws As Variant
'Tạo nhóm các Sheet cần thực hiện
ar=Array("Sheet1", "Sheet2")
'Lệnh ẩn Sheet
For Each ws In ar
Worksheets(ws).Visible=xlSheetHidden
Next ws
End Sub
Trong trường hợp trên, chúng ta muốn ẩn đồng thời Sheet1 và Sheet2.
Để mở ẩn đồng thời nhiều Sheet đã xác định rõ tên, chúng ta làm tương tự câu lệnh trên, nhưng thay vì việc ẩn thì dùng lệnh mở ẩn
Worksheets(ws).Visible=xlSheetVisible
1.3. Ẩn tất cả các Sheet chỉ chừa lại Sheet cuối cùng
Có 1 lưu ý là bạn không thể ẩn toàn bộ các sheet được, mà tối thiểu phải còn lại 1 Sheet. Do đó câu lệnh dưới đây được hiểu như câu lệnh ẩn toàn bộ các Sheet cần ẩn, chỉ chừa lại 1 Sheet cần hiển thị:
Sub Hide_Sheet_Test02() 'Ẩn tất cả các Sheet chỉ chừa lại Sheet cuối cùng
Dim i As Integer
For i=1 To Worksheets.Count - 1
Sheets(i).Visible=False
Next i
End Sub
Worksheets.Count – 1 là đếm tất cả các sheet trong Workbook rồi trừ đi 1 để chừa lại Sheet cuối cùng
2. Cách loại bỏ liên kết tới file khác bằng VBA
Trong một số trường hợp chúng ta mở file excel lên và thấy xuất hiện thông báo như sau:
Thông báo này có nội dung là: File đang mở có chứa liên kết (tham chiếu) tới 1 file khác, và hiện tại đang được vô hiệu hóa tham chiếu này.
Chúng ta có thể bấm vào nút Enable Content để cho phép tham chiếu được thực hiện.
Tuy nhiên trong những trường hợp không rõ file liên kết, không muốn xuất hiện lại thông báo này nữa thì chúng ta làm thế nào?
Sau đây chúng ta cùng tìm hiểu về cách loại bỏ liên kết tới file khác bằng VBA
Dưới đây là một câu lệnh đơn giản để loại bỏ các liên kết trong excel (break link)
Sub RemoveLink_01() 'Excel VBA remove links from workbook.
Dim ar As Variant
Dim i As Integer
ar=ActiveWorkbook.LinkSources(1
On Error Resume Next 'Bỏ qua các lỗi có thể xảy ra
For i = 1 To UBound(ar) 'Thực hiện vòng lặp xét các liên kết
ActiveWorkbook.BreakLink ar(i), xlLinkTypeExcelLinks
Next i
On Error GoTo 0 'Đưa cơ chế bẫy lỗi về dạng mặc định
End Sub
Ưu điểm:
Xử lý được các liên kết đơn giản, những liên kết khó tìm trong file
Nhược điểm:
Những liên kết nằm trong Name Manager hoặc sử dụng trong biểu đồ thì không loại bỏ được
Việc xóa bỏ các liên kết ẩn, các liên kết khó tìm bằng mắt thường là một việc phức tạp. Để làm được điều này chúng ta cần hình dung ra được các trường hợp có thể chứa liên kết:
- Liên kết nằm trong sheet, công thức
- Liên kết nằm trong Name Manager
- Liên kết nằm trong biểu đồ (khi copy 1 biểu đồ từ file khác sang)
Câu lệnh dưới đây sẽ làm rõ hơn các vùng chứa liên kết và xử lý các liên kết đó:
Sub RemoveLink_02() 'Excel VBA remove validation links from workbook.
Dim r As Range
Dim str As String
Dim sh As Worksheet
Dim ws As Worksheet
Set ws = ActiveSheet
Set sh = Sheets.Add
sh.Name = "ExternalLK"
For Each r In ws.UsedRange.Cells
On Error Resume Next 'Gặp lỗi thì bỏ qua
str = "" 'Đưa biến về giá trị rỗng để về dạng mặc định
str = r.Validation.Formula1 'Xét chuỗi trong các công thức
On Error GoTo 0 'Đưa cơ chế bẫy lỗi về mặc định
If InStr(1, str, "]") > 0 Then 'Xét toàn bộ các dòng trong bảng và bỏ qua chuỗi nào có gắn với dấu ngoặc vuông
sh.Range("A65536").End(xlUp)(2) = r.Address & " " & r.Validation.Formula1
End If
Next r
End Sub
Như vậy bài viết đã hướng dẫn cho bạn cách ẩn và bỏ ẩn nhiều sheet cùng lúc và Cách loại bỏ liên kết tới file khác bằng VBA. Hy vọng rằng bài viết này sẽ giúp ích cho các bạn. Chúc bạn thực hiện thao tác thành công!
Tham khảo thêm
- doc 15 Thủ thuật Excel thông dụng nhất 2020
- doc Tổng hợp các hàm thống kê thông dụng trong Excel
- doc Hướng dẫn sử dụng hàm If và hàm Round trong Excel mà bạn nên biết
- doc Hướng dẫn sử dụng sử hàm Right, hàm Left và hàm COUNT- hàm đếm trên Excel
- doc Hướng dẫn ẩn, hiện Sheet và tô màu đường lưới trong Excel hay nhất
- doc Hướng dẫn cách kết hợp hàm IF và hàm VLOOKUP, hàm AND, hàm OR trong Excel
- doc Hướng dẫn cách vẽ biểu đồ Miền và biểu đồ Đường trong Excel
- doc Hướng dẫn cách tạo Pivot Table trong Excel một cách nhanh chóng nhất
- doc Hướng dẫn cách ẩn các nút và các nhãn của Pivot Table trong Excel
- doc Hướng dẫn cách dùng hàm SUMIF chi tiết nhất trong Excel
- doc Hướng dẫn định dạng, in ấn và xử lý khi in file xuất hiện cả tiêu đề dòng, cột trong Excel
- doc Hướng dẫn đánh số trang trong Excel nhanh chóng nhất
- doc Hướng dẫn cách bật, tắt và thay đổi màu sắc của đường kẻ mờ trong Excel
- doc Hướng dẫn chi tiết cách tạo và chỉnh sửa bảng trong Excel
- doc Name Box là gì? Cách trình bày văn bản trong Excel đẹp như Word.
- doc Hướng dẫn thêm clip art vào file và một số lệnh RUN để mở nhanh các ứng dụng trong bộ Office
- doc Cách gõ dấu tiếng Việt, gõ tắt, chuyển mã với Unikey một cách nhanh chóng nhất
- doc Hướng dẫn chèn ảnh chụp màn hình desktop vào Excel và Cách dùng NUMWORD Excel Add-in
- doc Hướng dẫn chuyển phân số bị lưu dạng text về số thập phân và tính trung bình của một số theo từng lần
- doc Cách copy chỉ những giá trị hiển thị sau khi lọc và tính MAX MIN theo điều kiện