VBA Ẩn các cột - Làm thế nào để ẩn các cột bằng cách sử dụng mã VBA?

Excel VBA Ẩn các cột

Ẩn là một điều đơn giản, nhưng bạn cần hiểu khái niệm ở đây. Để ẩn cột bằng VBA, chúng ta cần xác định cột nào chúng ta cần ẩn. Để chỉ định cột được ẩn, chúng ta cần sử dụng đối tượng RANGE.

Phạm vi ("A: A")

Sau đó, chúng ta cần sử dụng Thuộc tính “Toàn bộ Cột”.

Phạm vi ("A: A"). Toàn bộ Cột

Trong toàn bộ thuộc tính cột, chúng ta cần sử dụng thuộc tính "Ẩn".

Phạm vi ("A: A"). EntireColumn.Hidden

Sau đó, cuối cùng, chúng ta cần đặt thuộc tính Ẩn thành TRUE.

Phạm vi ("A: A"). EntireColumn.Hidden = TRUE

Điều này sẽ ẩn cột A.

Làm thế nào để ẩn các cột trong VBA?

Chúng ta có thể ẩn các cột theo một số cách. Chúng ta có thể ẩn một cột bằng cách sử dụng đối tượng Phạm vi bằng cách sử dụng thuộc tính CELLS. Dựa trên phương pháp chúng tôi sử dụng, chúng tôi cần phải xây dựng mã VBA của mình.

Ví dụ # 1 - Ẩn bằng cách sử dụng Đối tượng Phạm vi

Nếu bạn muốn ẩn một cột cụ thể, hãy chỉ định cột bên trong đối tượng RANGE. Nhìn vào dữ liệu dưới đây.

Bây giờ chúng ta sẽ ẩn toàn bộ cột A bằng đoạn mã sau.

Mã:

Sub Range_Hide () Range ("A: A"). EntireColumn.Hidden = True End Sub

Vì vậy, khi chúng ta chạy mã, chúng ta sẽ nhận được kết quả như sau.

Ví dụ # 2 - Ẩn bằng Thuộc tính Cột

Nếu bạn muốn ẩn cột bằng cách sử dụng thuộc tính Cột, thì mã dưới đây là dành cho bạn.

Mã:

Sub Range_Hide () Columns ("B"). Hidden = True End Sub

Thao tác này sẽ ẩn cột B. Ở đây bạn phải nghĩ thuộc tính Toàn bộ Cột ở đâu. Khi bạn sử dụng thuộc tính Cột, không nhất thiết phải sử dụng thuộc tính Toàn bộ Cột.

Chúng ta vẫn có thể sử dụng thuộc tính Toàn bộ Cột nhưng không nhất thiết phải có. Và mã cho cùng một được đưa ra dưới đây.

Mã:

Sub Columns_Hide () Columns ("B"). EntireColumn.Hidden = True End Sub

Điều này cũng sẽ hoạt động tốt.

Chúng ta cũng có thể sử dụng số cột thay vì tham chiếu bảng chữ cái. Và mã cho cùng một được đưa ra dưới đây.

Mã:

Sub Columns_Hide () Columns (4) .EntireColumn.Hidden = True End Sub

Thao tác này sẽ ẩn Cột D.

Ví dụ # 3 - Ẩn Nhiều Cột

Chúng tôi cũng có thể ẩn nhiều cột cùng một lúc. Chúng ta cần phải đề cập đến cột đầu tiên và cột cuối cùng để ở giữa các cột cũng sẽ bị ẩn. Đối với cùng một dữ liệu như ví dụ số 1, hãy sử dụng mã sau để ẩn nhiều cột.

Mã:

Sub Columns_Hide() Range("A:C").EntireColumn.Hidden = True End Sub

This will hide column A to C.

We can use the following code as well to hide multiple columns in Excel VBA.

Code:

Sub Multi_Columns_Hide() Columns("A:C").EntireColumn.Hidden = True End Sub

The above methods will hide the first three columns i.e., A, B, and C.

Example #4 - Hide Columns with Single Cell

We can also hide a column based on a single cell reference. We don’t need to give the full column reference to hide the column. With just a single cell reference, we should be able to hide a column.

Code:

Sub Single_Hide() Range("A5").EntireColumn.Hidden = True End Sub

This will hide the entire column A.

Example #5 - Hide Every Alternative Column

Assume you have data, something like the below image.

We need to hide every alternative column, which is blank. We need to use loops; the below code will do the job for us.

Code:

Sub AlternativeColumn_Hide() Dim k As Integer For k = 1 To 7 Cells(1, k + 1).EntireColumn.Hidden = True k = k + 1 Next k End Sub

This will hide every alternate column.

Example #6 - Hide Every Empty Column

In the previous example, every other alternative column was blank; we have hidden easily. But look at the below data.

Here empty columns pattern is not standard. In these cases, the below code will hide all the empty columns. It doesn’t matter what the pattern is.

Code:

Sub Column_Hide1() Dim k As Integer For k = 1 To 11 If Cells(1, k).Value = "" Then Columns(k).Hidden = True End If Next k End Sub

When you run the code, you will get the result as follows.

Example #7 - Hide Columns Based On Cell Value

Bây giờ chúng ta sẽ xem cách ẩn các cột dựa trên giá trị ô. Ví dụ, hãy xem dữ liệu dưới đây.

Ở đây tôi muốn ẩn tất cả các cột nếu tiêu đề là “Không”. Đoạn mã dưới đây sẽ làm điều đó cho tôi.

Mã:

Sub Column_Hide_Cell_Value () Dim k As Integer For k = 1 to 7 If Cells (1, k) .Value = "No" then Columns (k) .Hidden = True End If Next k End Sub

Khi bạn chạy mã, bạn sẽ nhận được kết quả như sau.

thú vị bài viết...