我在准备宏时会遇到一些麻烦,如果指定的单元格是合并单元格的一部分,它将帮助我将值传递给另一个单元格。
正如你所看到的,单元格A1-A15被合并,在B1中我写了= A1中的A1我做了= A2,所以我想要实现的是每当我指定某个单元格是合并单元格的一部分时( A1-A15)'test'值被传递,所以如果我写= A1或= A15或= A10
没有区别我很感激任何建议的帮助。
答案 0 :(得分:4)
您可以使用If Range("A1").MergeCells = True
检测Cell是否属于合并单元格。
使用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
答案 1 :(得分:2)
答案 2 :(得分:0)
我想要实现的是,无论何时我指定某个单元格,它是合并单元格的一部分(A1-A15),“&#39; test&#39;如果我写= A1或= A15或= A10
,则传递值,因此没有区别您想要完成的任务不容易完成。您可以使用VBA代码执行此操作,每次键入内容时都会检查,但这不值得。您在这里得到的另一个答案是值得的。
您想要做的事情是不可能的,因为Excel以奇怪的方式工作。我们假设您已将单元格A1:A15
合并。该值始终位于合并区域的第一个单元格中(在本例中为 A1 )。因此,当您引用合并区域内的单元格时,它将始终具有0值(空白单元格),除非它是第一个。
所以我的建议是:
- 使用其他1个答案,因为两者都非常有用
- 如果您坚持使用普通公式,那么请尝试使用绝对引用,而不是键入
=A1
,尝试=$A$1
。如果你点击和 拖动,该公式将适用于您完成相邻的单元格 合并区域。- 我坚持,使用其中一个答案。
醇>