2012-02-23 50 views

Trả lời

35

Thậm chí nếu thực sự không được khuyến khích sử dụng các ô hợp nhất trong Excel (ví dụ: sử dụng ví dụ Center Across Selection), ô "chứa" giá trị là giá trị trên trên cùng bên trái (ít nhất, đó là cách thể hiện nó).

Do đó, bạn có thể nhận được giá trị của các tế bào sáp nhập trong phạm vi B4:B11 bằng nhiều cách:

  • Range("B4").Value
  • Range("B4:B11").Cells(1).Value
  • Range("B4:B11").Cells(1,1).Value

Bạn cũng có thể lưu ý rằng tất cả các khác các ô không có giá trị trong chúng. Trong khi gỡ lỗi, bạn có thể thấy rằng giá trị là empty.

Cũng lưu ý rằng Range("B4:B11").Value sẽ không hoạt động (tăng số lỗi thực hiện 13 nếu bạn cố gắng Debug.Print nó) vì nó trả về một mảng.

+46

Khi tôi không biết các giới hạn của khu vực sáp nhập, tôi nhận được giá trị với 'Range (" B6 "). MergeArea.Cells (1,1) .Value' –

+0

Mẹo hay! JMax

+0

@Josh Brown: giải pháp tuyệt vời .. cảm ơn bạn –

19

Josh Brown đã cung cấp (trong một chú thích) những gì tôi nghĩ là câu trả lời tốt nhất:

Khi tôi không biết giới hạn của khu vực sáp nhập, tôi nhận được giá trị với

Range("B6").MergeArea.Cells(1,1).Value 

này là hữu ích trong VBA khi, ví dụ, bạn đang looping thông qua các tập tin có thể đã sáp nhập các tế bào của phạm vi chưa biết, vì vậy bạn có thể được nhiều hơn nữa chung với phương pháp này. Cảm ơn Josh!

0

Điều này có thể được thực hiện theo 2 bước:

Tên đầu tiên là phạm vi của ô được hợp nhất; đánh dấu ô đã hợp nhất rồi đi trên Thanh Ribbon: Formulas Tab --> Define Name;

Đảm bảo không có khoảng trắng trong tên. Ví dụ: defined_Name. Chuyển đến ô mong muốn mà bạn muốn xem kết quả/kết quả. Trong ô đó, nhập: =defined_Name.

Nhấn enter vì bạn đã hoàn tất.

Các vấn đề liên quan