[英]Get value of a merged cell of an excel from its cell address in vba
如何獲取 excel 的合並單元格的值,其范圍地址如 vba 中的“$B$4:$B$11”
即使真的不鼓勵在Excel中使用合並單元格(例如,如果需要,使用Center Across Selection
),“包含”該值的單元格是左上角的單元格(至少,這是表達它的方式)。
因此,您可以通過以下幾種方式獲取B4:B11
范圍內合並單元格的值:
Range("B4").Value
Range("B4:B11").Cells(1).Value
Range("B4:B11").Cells(1,1).Value
您還可以注意到所有其他單元格中沒有任何值。 在調試時,您可以看到該值為empty
。
另請注意Range("B4:B11").Value
不起作用(如果嘗試Debug.Print
它會引發執行錯誤號13),因為它返回一個數組。
Josh Brown(評論中)給出了我認為最好的答案:
當我不知道合並區域的邊界時,我得到了值
Range("B6").MergeArea.Cells(1,1).Value
例如,當您循環瀏覽可能已合並未知范圍的單元格的文件時,這在VBA中很有用,因此您可以使用此方法更加通用。 謝謝Josh!
這可以分兩步完成:
首先命名合並單元格的范圍; 突出顯示合並的單元格然后進入功能區欄: Formulas Tab --> Define Name;
確保名稱中沒有空格。 示例: defined_Name
。 轉到您希望查看輸出/結果的所需單元格。 在該單元格中,鍵入: =defined_Name
。
按Enter鍵,因為你完成了。
(Excel 2016)
我希望這會對某人有所幫助。
我發現如果您在合並的單元格上按刪除鍵,則 target.cells.count = 合並單元格的數量。
而如果您更改同一單元格上的值,則 target.cells.count = 1
這給我帶來了問題,因為我通過測試所選單元格的數量來跳過 worksheet_change 代碼中的多項選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.