Steve có một dải ô (A1: A10) chứa địa chỉ trang web — ví dụ: www.example.com. Anh ấy tự hỏi liệu có thể, trong một macro, có thể mở tất cả các địa chỉ này trong một trình duyệt cùng một lúc trong các tab trình duyệt riêng biệt hay không.

Có một số cách bạn có thể tiếp cận nhiệm vụ này và cách bạn chọn phụ thuộc phần lớn vào bản chất của dữ liệu trong trang tính của bạn. Nếu các ô chứa các siêu liên kết đang hoạt động (những cái mà nếu bạn nhấp vào chúng, địa chỉ sẽ được mở trong trình duyệt), thì bạn có thể sử dụng một macro khá đơn giản:

On Error Resume Next     Set MyRange = Range("A1:A10")

Macro chỉ đơn giản là xem xét tất cả các siêu liên kết trong phạm vi A1: A10 và sử dụng phương pháp Theo dõi để mở từng siêu liên kết trong trình duyệt mặc định của bạn.

Do cách hệ điều hành của bạn chuyển thông tin từ Excel sang trình duyệt của bạn, bạn nên mở trình duyệt của mình trước khi chạy macro. Lý do cho điều này là vì, trong quá trình thử nghiệm, chúng tôi nhận thấy rằng bạn thực sự có thể kết thúc với hai phiên bản trình duyệt đang mở, với một số địa chỉ mở trong một phiên bản và một số địa chỉ khác.

Điều này dường như xảy ra do sự chậm trễ trong việc mở phiên bản đầu tiên của trình duyệt. Nếu trình duyệt mở trước khi chạy macro, thì không có thời gian trễ và mỗi địa chỉ sẽ mở trong một tab khác của cùng một phiên bản trình duyệt.

Nếu các địa chỉ trong trang tính của bạn có thể không phải là siêu liên kết đang hoạt động, thì bạn không thể dựa vào việc sử dụng bộ sưu tập Siêu liên kết cho phạm vi.

Thay vào đó, bạn cần xem giá trị của từng ô trong phạm vi:

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

Cuối cùng, nếu dữ liệu của bạn có thể không chứa các địa chỉ đủ điều kiện, thì bạn vẫn cần sử dụng một cách tiếp cận khác. Ví dụ: Steve đã đề cập đến việc có các địa chỉ như www.example.com trong trang tính, nhưng địa chỉ như vậy sẽ không hoạt động với các ví dụ cho đến nay. Nếu dữ liệu của bạn bị thiếu http: // ở đầu (hoặc một số biến thể, chẳng hạn như https: //), thì mã sẽ không mở địa chỉ trong trình duyệt. Trong dữ liệu của bạn có đặc điểm này, sau đó một chút sửa đổi đối với macro theo thứ tự:

Dim MyRange As Range     Dim cell As Range     Dim sTemp As String

On Error Resume Next     Set MyRange = Range("A1:A10")

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (11413) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: