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