如何保持每个单元格合并单元格的价值?

我创build了具有合并单元格的工作表,但合并单元格的值仅存储在第一个单元格中。 无论如何,要保持每个细胞的相同的价值,我需要一个我使用的公式。 谢谢!

在Excel 2003中,这个macros执行这个工作:

Public Sub UnmergeAndFill() With Selection If .MergeCells Then .MergeCells = False Selection.Cells(1, 1).Copy ActiveSheet.Paste 'Or PasteSpecial xlPasteFormulasAndNumberFormats End If End With End Sub 

通过创buildmacros

  1. Alt-F11Ctrl-R ,菜单Insert/Module ,粘贴代码;
  2. 或者Alt-F8键入一个新的名字( UnmergeAndFill ,例如),点击MakeCreate?不知道英文button文字

按Alt-F8调用macros,select它, Run 。 或者将其映射到一个键

我知道这是一个相当古老的问题,但这是我在寻找答案时着陆的第一个地方,被接受的答案根本没有帮助。 我发现了一个很好的答案,但是,在MrExcel上,我认为这值得放在这个线程上,以利于任何人使用Googlesearch答案:
http://www.mrexcel.com/forum/general-excel-discussion-other-questions/487941-data-multiple-cells-within-merged-cell-possible.html

为了保存查找链接,答案非常简单, 如果使用Excel Format Painter合并单元格,而不是合并单元格,则会保留数据/公式“底层”合并的单元格。 您只需要在其他地方以正确的格式创build临时合并的单元格块,以用作格式刷的模板。 你可以在之后删除它们。 但有一点需要注意的是,像这样的“隐藏”数据可能是一个不小心的陷阱,因为编辑可见的单元格不会改变不可见的单元格。

您可以创build一个新的列(或行),并在第一个单元格中应用此公式并将其拖动到下面:

我想在列A你有合并单元格(例如A1:A3和A5:A8合并)。

  1. 在列A之前插入一列

  2. 在A1types中:

     =B1 
  3. 在A2中复制下面的公式:

     =IF(B2="",A1,B2) 
  4. 向下拖动在A2中键入的公式

在你的公式使用新创build的列,使用后,你可以隐藏它。

你不能把实际值存储在别的地方吗? 而不是合并的单元格? 是的,使用公式来显示合并的单元格上的值。

假设列“A”已合并单元格 – 将其放在B1中并复制它以填充列的其余部分:

 =IF(ISBLANK(A1);OFFSET(B1;-1;0);A1) 

它检查左边的单元格是否有值,如果有,则返回它的值,如果没有,则从上面的单元格取值。

请注意,它不适用于空单元格。 首先填充“A”列中的空单元格,填充“B”后填充“A”和“B”中的空(“空”),然后replace为空。

您可以使用自定义VBA函数直接提供合并单元格的值,而不pipe您select哪一个。 在这种情况下,不需要重复这些值。

  1. 切换到VBA视图(Alt-F11)
  2. 通过插入>模块创build一个新模块
  3. 在你的项目中,浏览到新的模块(你可能想通过资源pipe理器下的(name)属性给它一个新的名字)
  4. 在模块中复制以下代码(粘贴ThisWorkbook中的代码将不起作用)

码:

 Option Explicit Function GetMergedValue(location As Range) If location.MergeCells = True Then GetMergedValue = location.MergeArea(1, 1) Else GetMergedValue = location End If End Function 
  1. 你现在可以在Excel中使用公式

码:

 =GetMergedValue(A1) 

其中A1是合并单元格的一部分。