Xin lưu ý rằng đây là diễn đàn en-us. Chúng tôi khuyến nghị bạn đăng câu hỏi bằng tiếng Anh để nhiều thành viên trong cộng đồng có thể hỗ trợ bạn.
Chúng tôi chân thành cảm ơn sự thông cảm của bạn.
Lưu ý: Câu trả lời này đã được dịch tự động. Do đó, nó có thể chứa lỗi ngữ pháp hoặc cách diễn đạt khó xử.
Xin chào Suzy Ngo
Cảm ơn bạn đã chia sẻ vấn đề trên diễn đàn Hỏi & Đáp.
Dựa trên thông tin bạn cung cấp, tôi hiểu rằng bạn muốn mở đồng thời nhiều đường link trong Excel chỉ với một thao tác (bôi đen rồi click), cho cả Excel trên máy tính (Windows/Mac) và Excel Online.
Tuy nhiên, tôi nhận thấy hình ảnh bạn gửi thuộc giao diện Windows, trong khi phần thẻ lại đề cập đến macOS. Để hỗ trợ tốt nhất, tôi xin gửi đến bạn hai hướng xử lý cho cả Windows và macOS. Bạn có thể kiểm tra và thao tác thử.
Ngoài ra, để đảm bảo giải pháp phù hợp, vui lòng xác nhận giúp tôi: đường link bạn đề cập là loại link gì (ví dụ: link web HTTP/HTTPS, link nội bộ, hay đường dẫn file).
- Excel trên máy tính (Windows & Mac): Hoàn toàn thực hiện được bằng cách tạo Macro VBA để mở tất cả link trong vùng được bôi đen. Sau đó, bạn có thể gán phím tắt hoặc nút để thao tác nhanh.
- Excel Online: Không hỗ trợ VBA; Office Scripts cũng không thể mở tab trình duyệt do giới hạn bảo mật.
Giải pháp thực tế: - Tải file về, mở bằng Excel Desktop và chạy macro.
Tạo macro “OpenSelectedHyperlinks”: Macro này sẽ:
- Mở tất cả URL trong vùng bạn bôi đen (kể cả link dạng Hyperlink hoặc text).
- Bỏ qua ô trống hoặc không hợp lệ.
- Hiển thị cảnh báo nếu số lượng link quá lớn để tránh mở tràn tab.
Nhấn Alt + F11 (Mac: Fn + Option + F11) để mở VBA Editor.
Vào Insert >> Module.
Dán đoạn mã sau:
Đối với đoạn mã VBA, nên giữ nguyên bằng tiếng Anh để tránh lỗi định dạng hoặc lỗi cú pháp. VBA là ngôn ngữ lập trình, nếu dịch sang tiếng Việt sẽ gây lỗi và không chạy được:
Option Explicit
Sub OpenSelectedHyperlinks()
Dim cell As Range
Dim addr As String
Dim openedCount As Long
Dim invalidCount As Long
Dim maxToOpen As Long
Dim resp As VbMsgBoxResult
If TypeName(Selection) <> "Range" Then
MsgBox "Hay boi den vao vung chua link truoc khi chay script ", vbExclamation
Exit Sub
End If
maxToOpen = 30 '
resp = MsgBox("Ban sap mo link tu " & Selection.Count & " o." & vbCrLf & _
"Gioi han hien tai: " & maxToOpen & " link." & vbCrLf & _
"Tiep tuc", vbOKCancel + vbInformation, "Mo nhieu lien ket")
If resp <> vbOK Then Exit Sub
Application.ScreenUpdating = False
For Each cell In Selection.Cells
addr = ""
If cell.Hyperlinks.Count > 0 Then
addr = cell.Hyperlinks(1).Address
Else
addr = Trim(CStr(cell.Value))
End If
If Len(addr) > 0 Then
If Not HasProtocol(addr) Then
addr = "http://" & addr
End If
If IsLikelyUrl(addr) Then
On Error Resume Next
ActiveWorkbook.FollowHyperlink Address:=addr, NewWindow:=True
If Err.Number = 0 Then
openedCount = openedCount + 1
Else
invalidCount = invalidCount + 1
Err.Clear
End If
On Error GoTo 0
Else
invalidCount = invalidCount + 1
End If
End If
If openedCount >= maxToOpen Then Exit For
Next cell
Application.ScreenUpdating = True
End Sub
Private Function HasProtocol(ByVal s As String) As Boolean
Dim i As Integer
Dim protos As Variant
protos = Array("http://", "https://", "ftp://", "mailto:", "file://")
s = LCase$(Trim$(s))
For i = LBound(protos) To UBound(protos)
If Left$(s, Len(protos(i))) = protos(i) Then
HasProtocol = True
Exit Function
End If
Next i
HasProtocol = False
End Function
Private Function IsLikelyUrl(ByVal s As String) As Boolean
s = Trim$(s)
If InStr(1, s, " ") > 0 Then
IsLikelyUrl = False
Else
IsLikelyUrl = (InStr(1, s, ".") > 0) Or (Left$(s, 7) = "mailto:")
End If
End Function
Gán phím tắt hoặc nút để chạy nhanh:
- Giảm bớt thao tác thủ công: Không cần vào nhiều menu hoặc chuyển đổi tab để chạy macro.
- Tiết kiệm thời gian: Chỉ cần bôi đen vùng chứa link và nhấn nút hoặc phím tắt.
- Tránh lỗi thao tác: Không phải tìm lại macro trong danh sách mỗi lần sử dụng.
Phím tắt: - Vào Developer >> Macros >> chọn OpenSelectedHyperlinks >> Options…
- Gán ví dụ Ctrl + Shift + S (Mac: dùng Quick Access Toolbar hoặc Ribbon).
Nút (Button):
- Trên thanh Ribbon, chọn Developer >> Insert.
- Trong nhóm Form Controls, chọn biểu tượng Button (Form Control).
- Di chuyển chuột đến vùng trang tính và vẽ nút (kích thước tùy ý).
- Sau khi vẽ nút, hộp thoại Assign Macro sẽ xuất hiện.
- Chọn macro OpenSelectedHyperlinks (macro bạn đã tạo trước đó).
- Nhấn OK để gán macro cho nút.
- Nhấp chuột phải vào nút >> chọn Edit Text >> nhập tên dễ nhớ, ví dụ: “Mở tất cả link”.
- Bôi đen vùng ô chứa các link cần mở.
- Nhấn nút “Mở tất cả link” vừa tạo.
- Các link sẽ được mở trong trình duyệt mặc định.
Nếu muốn nút này xuất hiện trong mọi file Excel, hãy lưu macro vào Personal Macro Workbook.
Trên macOS, thao tác tương tự nhưng giao diện hơi khác; vẫn thực hiện qua tab Developer.
Hy vọng thông tin này hữu ích với bạn. Vui lòng thử thao tác và phản hồi nếu có bất kỳ phát sinh nào hoặc cần hỗ trợ thêm. Tôi luôn sẵn sàng hỗ trợ bạn!
Nếu câu trả lời hữu ích, vui lòng nhấp vào "Chấp nhận câu trả lời" và vui lòng ủng hộ nó. Nếu bạn có thêm câu hỏi về câu trả lời này, vui lòng nhấp vào "Bình luận".
Lưu ý: Vui lòng làm theo các bước trong tài liệu của chúng tôi để bật thông báo qua email nếu bạn muốn nhận thông báo qua email liên quan cho chuỗi này."