Làm thế nào để có được giá trị của một tế bào sáp nhập của một excel có địa chỉ phạm vi như "$ B $ 4: $ B $ 11" trong VBAgiá trị Nhận của một tế bào sáp nhập của một excel từ địa chỉ ô của nó trong VBA
Trả lời
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.
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' –
Mẹo hay! – JMax
@Josh Brown: giải pháp tuyệt vời .. cảm ơn bạn –
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!
Đ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.
Excel, tôi giả sử? Giá trị gia tăng dưới dạng một từ khóa ... –
'Phạm vi (" B4: B11 "). Các ô (1) .Value'? –