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

时间:2011-06-24 06:34:53

标签: excel merge excel-2007 cells

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

8 个答案:

答案 0 :(得分:6)

在Excel 2003中,此宏完成了这项工作:

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

通过

创建宏
  1. Alt-F11 Ctrl-R ,菜单Insert/Module,粘贴代码;
  2. 或者 Alt-F8 ,输入新名称(例如UnmergeAndFill),点击MakeCreate?不知道英文按钮文字
  3. 按Alt-F8调用宏,选择它Run。或者将其映射到一个键

答案 1 :(得分:2)

我知道这是一个相当古老的问题,但这是我在寻找答案时首先登陆的地方,并且接受的答案根本没有帮助。然而,我在MrExcel上发现了一个很好的答案,我认为值得投入这个帖子,以便其他任何人使用Google搜索答案:
http://www.mrexcel.com/forum/general-excel-discussion-other-questions/487941-data-multiple-cells-within-merged-cell-possible.html

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

答案 2 :(得分:1)

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

我想在A栏中你有合并的单元格(例如A1:A3& A5:A8合并)。

  1. 在A列之前插入一列

  2. 在A1类型中:

    =B1
    
  3. 将以下公式复制到A2:

    =IF(B2="",A1,B2)
    
  4. 向下拖动您在A2

  5. 中输入的公式

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

答案 3 :(得分:1)

您可以使用自定义VBA函数直接提供合并单元格的值,无论您选择哪一个。在这种情况下,没有必要复制值。

  1. 切换到VBA视图(Alt-F11)
  2. 通过Insert>创建新模块模块
  3. 在您的项目中,浏览到新模块(您可能希望通过资源管理器下的(名称)属性为其指定新名称)
  4. 复制模块中的以下代码(粘贴ThisWorkbook中的代码不起作用)
  5. 代码:

    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中使用公式
    2. 代码:

      =GetMergedValue(A1)
      

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

假设列" A"已合并单元格 - 将其放入B1并复制以填充列的其余部分:

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

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

请注意,它对空单元格无效。首先填充列中的空单元格" A"有一些独特的东西,比如"(空)"并且在" A"中将空虚替换回来。和" B"填写专栏" B"。

答案 6 :(得分:0)

我改进了sehe的宏来做你选择的合并单元格。

代码:

Public Sub UnmergeAndFillMultiple()
    Dim w As Range, m As Range, n As Range
    For Each w In Selection.Cells
        If w.MergeCells Then
            Set n = w.MergeArea.Cells(1, 1)
            Set m = w.MergeArea
            w.MergeCells = False
            n.Copy
            m.PasteSpecial
        End If
    Next
End Sub

答案 7 :(得分:-1)

 Dim rowcnt As Long, i As Long
    rowcnt = Cells(Rows.Count, "A").End(xlUp).Row
    For i = rowcnt To 3 Step -1
        With Cells(i, 1)
            If .Value = Cells(i - 1, 1).Value Then
                .Font.ColorIndex = 9
            End If
        End With
    Next i