[英]Excel VBA - If cells is part of merged cells pass the value?
您可以使用If Range("A1").MergeCells = True
來檢測某個單元格是否為合並單元格的一部分。
讓你在你有行數MergedArea
使用Range("A" & i).MergeArea.Rows.Count
。
下面的代碼內有更多說明。
碼
Option Explicit
Sub CheckifMergedCell()
Dim MergeRows As Long, i As Long
i = 1
While i < 100 ' 100 is just for example , change it later according to your needs
If Range("A" & i).MergeCells = True Then
MergeRows = Range("A" & i).MergeArea.Rows.Count ' number of merged cells
Else ' not merged >> single row
MergeRows = 1
End If
Range("B" & i).Resize(MergeRows, 1).Value = Range("A" & i).Value
i = i + MergeRows
Wend
End Sub
我想要實現的是,每當我在某個位置分配了合並單元格(A1-A15)的一部分的單元格時,都會傳遞'test'值,因此如果我寫= A1或= A15或= A10不會有任何區別
您想要完成的任務並非易事。 您可以使用VBA代碼來做到這一點,該代碼每次鍵入內容時都會進行檢查, 但這並不值得。 您在這里得到的另一個答案是值得的。
您無法做的事情是因為Excel工作方式很怪異。 假設您合並了單元格A1:A15
。 該值始終是合並區域的第一個像元(在這種情況下為A1 )。 因此,當您引用合並區域內的一個單元格時,除非它是第一個單元格,否則它將始終具有0值(空白單元格)。
所以我的建議是:
- 請使用其他答案中的1個,因為兩者都非常有幫助
- 如果您堅持使用普通公式,則不要鍵入
=A1
,而是嘗試使用絕對引用,請嘗試=$A$1
。 如果單擊並拖動,該公式將為您完成相鄰單元格的合並區域。- 我堅持使用其他答案之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.