Note: The other languages of the website are Google-translated. Back to English

 Làm thế nào để chọn một cột dựa trên tiêu đề cột trong Excel?

Giả sử, bạn có một trang tính lớn chứa nhiều cột và bây giờ, bạn muốn chọn cột cụ thể dựa trên tên tiêu đề cột. Để tìm từng cột trong một trang tính lớn sẽ lãng phí nhiều thời gian, bài viết này, tôi sẽ giới thiệu một phương pháp nhanh chóng để giải quyết công việc này trong Excel.

Chọn một cột dựa trên tên tiêu đề cột với mã VBA


Chọn một cột dựa trên tên tiêu đề cột với mã VBA

Mã VBA sau có thể giúp bạn chọn các cột dựa trên tên tiêu đề cụ thể, vui lòng làm như sau:

1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.

Mã VBA: Chọn cột dựa trên tên tiêu đề cột:

Sub FindAddressColumn()
'Updateby Extendoffcie
    Dim xRg As Range
    Dim xRgUni As Range
    Dim xFirstAddress As String
    Dim xStr As String
    On Error Resume Next
    xStr = "Name"
    Set xRg = Range("A1:P1").Find(xStr, , xlValues, xlWhole, , , True)
    If Not xRg Is Nothing Then
        xFirstAddress = xRg.Address
        Do
            Set xRg = Range("A1:P1").FindNext(xRg)
            If xRgUni Is Nothing Then
                Set xRgUni = xRg
            Else
                Set xRgUni = Application.Union(xRgUni, xRg)
            End If
        Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
    End If
    xRgUni.EntireColumn.Select
End Sub

Chú thích: Trong đoạn mã trên, A1: P1 là phạm vi tiêu đề mà bạn muốn chọn cột và “Họ tên”Trong kịch bản xStr = "Tên" là tên tiêu đề mà bạn muốn chọn các cột dựa trên. Vui lòng thay đổi chúng theo nhu cầu của bạn.

3. Sau khi sao chép và dán mã, vui lòng nhấn F5 để chạy mã này và tất cả các cột có tên tiêu đề cụ thể đã được chọn cùng một lúc, hãy xem ảnh chụp màn hình:


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (6)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này thật tuyệt, nhưng nếu tôi muốn sao chép, chẳng hạn như CustomerName, OrderNumber, OrderDate, FulfillmentDate, OrderStatus từ Sheet1 với nhiều cột khác.
Làm cách nào để chỉ định các cột cần được sao chép sang một trang tính khác? Điều này dường như chỉ xác định một cột.
Tôi đã thử một số thứ, nhưng vấn đề nằm ở chỗ các cột không nhất thiết phải theo cùng một thứ tự trên trang nguồn. Dữ liệu nguồn trong Sheet1 được dán từ khay nhớ tạm thời của Windows vào trang tính Excel.

Nó có thể là, CustomerName, OrderDate, OrderNumber, OrderStatusm FulfillmentDate hoặc một số đơn đặt hàng khác.

Tôi cần chúng được sao chép vào một trang tính mới theo một thứ tự cụ thể vì có các công thức trong Trang tính2 được áp dụng cho những gì được sao chép từ Trang tính1 sang Trang tính2.

Ngoài việc di chuyển các cột xung quanh sau khi dán từ khay nhớ tạm thời của Windows, tôi không thể tìm ra điều này.

Xin hãy giúp đỡ nếu có thể.

Cảm ơn bạn vui lòng cho ở trên mặc dù.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Dim xRg theo phạm vi
Dim xRgUni dưới dạng phạm vi
Dim xFirstAddress dưới dạng chuỗi
Làm mờ xStr dưới dạng chuỗi

Các biến đang được khai báo.

Do đó, để sử dụng lại đoạn mã trên cho một cột khác, bạn sẽ phải khai báo các biến mới.

Dim xRg2 Theo phạm vi
Dim xRgUni2 dưới dạng phạm vi
Dim xFirstAddress2 dưới dạng chuỗi
Làm mờ xStr2 dưới dạng chuỗi

Và thay thế mọi trường hợp của xRg bằng xRg2 trong mã vv. Điều đó có ý nghĩa?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, có vẻ công việc tuyệt vời. Nhưng tôi đang gặp lỗi biên dịch: Đối số không phải là tùy chọn trong khi đánh dấu ". Union". Tôi nên làm gì?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn - lúc đầu nó có vẻ hoạt động, nhưng sau đó tôi nhận thấy nó không bao gồm cột được tìm thấy đầu tiên - nó bắt đầu với cột thứ hai trở đi.

Điều này có thể giải thích được: bạn đặt xRg hai lần, nhưng bạn không bao gồm lần đầu tiên.

TBH: Ban đầu tôi nghĩ nó hoạt động tốt, nhưng sau đó 'lỗi' đó xuất hiện và tôi phải tìm ra lý do tại sao ....

Tôi đã sửa nó như sau: (trong Excel, các nhận xét sẽ chuyển sang màu xanh lục và hiển thị các chỉnh sửa của tôi: '***)



Sub FindAddressColumn ()

'Updateby Extendoffcie

Dim xRg theo phạm vi

Dim xRgUni dưới dạng phạm vi

Dim xFirstAddress dưới dạng chuỗi

Làm mờ xStr dưới dạng chuỗi

On Error Resume Next
xStr = "Tên"
Đặt xRg = Range ("A1: P1"). Tìm (xStr,, xlValues, xlPart,,, True)

Nếu không xRg thì không có gì

xFirstAddress = xRg.Address

Do

Nếu xRgUni không là gì thì

Đặt xRgUni = Range (xFirstAddress) '*** Sử dụng dải ô được tìm thấy đầu tiên

Khác

Đặt xRgUni = Application.Union (xRgUni, xRg)

Cuối Nếu



Đặt xRg = Range ("A1: P1"). FindNext (xRg) '*** Hiện đang tìm kiếm cái thứ hai / tiếp theo



Vòng lặp trong khi (Không phải xRg là không có gì) Và (xRg.Address <> xFirstAddress)

Cuối Nếu

xRgUni.EntireColumn.Select

End Sub




Điều này bây giờ làm việc cho tôi, nhưng tôi hy vọng sẽ học được từ bạn nếu tôi bỏ qua bất cứ điều gì.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Bạn có thể đề xuất macro cho vấn đề được Shaun đề cập bên dưới không
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn spoil rất nhiều đã lưu trong ngày của tôi!
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL