簡體   English   中英

從 vba 中的單元格地址獲取 excel 的合並單元格的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM