Random Posts

VBA với siêu liên kết (Hyperlink) trong Excel

(VBA Excel) - Phần mềm Office đã trở nên quá quen thuộc với người dùng, với nhiều lĩnh vực từ: giáo dục, tài chính, ngân hàng, CNTT, xây dựng, kinh doanh… Mặc dù mỗi lĩnh vực có những đặc thù khác nhau nhưng Office vẫn có thể đáp ứng tất cả các yêu cầu của người dùng. Đặc biệt đối với Excel, nó được sử dụng vào những công việc từ đơn giản đến phức tạp  như: tính toán lương, bảng giá, kế toán, dự toán xây dựng. Với Excel người sử dụng không những có thể sử dụng những hàm có sẵn do Microsoft viết mà tự mình viết ra các hàm để xử lý, giải quyết những công việc, bài toán thực tế.

Xem những Video hay dành cho thiếu nhi - Xem trên Youtube



Bài viết này sẽ giới thiệu với mọi người cách tận dụng sức mạnh của VBA khi làm việc với các siêu liên kết (Hyperlink).

1. Xóa toàn bộ các siêu liên kết các ô được chọn
Sao chép đoạn mã  phía dưới vào Workbook, sau đó chọn các ô cần xóa liên kết và chạy Macro này.
Sub RemoveHyperlinks()
     Selection.Hyperlinks.Delete
End Sub

2. Xóa toàn bộ các siêu liên kết trong Sheet hiện tại
Nếu bạn muốn loại bỏ tất cả các siêu liên kết trên Sheet hiện tại , sử dụng các Macro sau đây

Sub RemoveHyperlinksOnActiveSheet()
Cells.Hyperlinks.Delete
End Sub

3. Lấy ra địa chỉ của siêu liên kết điền vào ô liền kề bên phải
Bạn có thể sử dụng một Macro để trích xuất địa chỉ từ mỗi siêu liên kết trên một bảng tính, và lưu  nó vào ô liền kề bên phải.


Sub ExtractHyperlink()
    Dim HL As Hyperlink
    For Each HL In ActiveSheet.Hyperlinks
        HL.Range.Offset(0, 1).Value = HL.Address
    Next
End Sub

4. Trích xuất các URL hoặc địa chỉ email từ một siêu liên kết
Nếu bạn có một siêu liên kết, để biết được chính xác URL đó là gì ta phải để chuột vào siêu liên kết đó hoặc kích chuột phải chọn Edit Hyperlink. Nhưng nếu bạn có một danh sách các siêu liên kết thì ta không thể thực hiện thủ công được vì sẽ mất thời gian, vậy có hàm nào trong Excel để làm được việc này không?
Hiện trong Excel không có hàm để trích xuất các URL hoặc địa chỉ email từ một siêu liên kết. Bạn có thể tạo ra hàm riêng để trích xuất địa chỉ.


Sao chép đoạn mã phía dưới vào trong bảng tính của bạn, sau đó sử dụng hàm GetURL trong bảng tính, giống như bất kỳ các hàm khác.

Function GetURL(cell As Range)
    GetURL = cell.Hyperlinks(1).Address
End Function

Ví dụ, để tìm URL cho một siêu liên kết trong ô B10, sử dụng công thức này:
= GetURL (B10)

5. Chuyển đổi văn bản URL để liên kết có thể click
Giả sử bạn có nhiều URL trong bảng tính của bạn, nhưng các URL không có liên kết, và bây giờ bạn cần phải chuyển đổi tất cả các url đến các siêu liên kết để có thể click, Bạn có thể nhấp đúp chuột vào từng cái một để chuyển đổi, nhưng điều này sẽ tốn thời gian nếu có rất nhiều các URL. Làm thế nào bạn có thể chuyển đổi nhiều URL đến các siêu liên kết để có thể click trong Excel?

  

Nếu bạn muốn loại thực hiện việc này , sử dụng các Macro sau đây

Sub AddHyperlinks()
    Dim Cell As Range
    For Each Cell In Intersect(Selection, ActiveSheet.UsedRange)
        If Cell <> "" Then
            ActiveSheet.Hyperlinks.Add Cell, Cell.Value
        End If
    Next
End Sub

Sau khi đã có Macro bên trên, quay trở lại màn hình làm việc Excel, bôi đen toàn bộ các danh sách cần chuyển đổi và chạy Macro.

Tin học văn phòng

Post a Comment

0 Comments