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

Kin*_*huk 7 excel merge excel-2007 cells

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

seh*_*ehe 7

在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
Run Code Online (Sandbox Code Playgroud)

通过创建宏

  1. Alt-F11,Ctrl-R菜单Insert/Module,粘贴代码;
  2. 或者:Alt-F8键入新名称(UnmergeAndFill例如),单击MakeCreate(?不知道英文按钮文本)

按Alt-F8调用宏,选择它,Run.或者将其映射到一个键

  • @Kinshuk:在那种情况下,你运气不好.Excel的应用程序对象模型明确表示不允许这样做. (2认同)

tak*_*kje 6

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

  1. 切换到 VBA 视图 (Alt-F11)
  2. 通过“插入”>“模块”创建新模块
  3. 在您的项目中,浏览到新模块(您可能希望通过资源管理器下方的 (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
Run Code Online (Sandbox Code Playgroud)
  1. 您现在可以在 Excel 中使用公式

代码:

=GetMergedValue(A1)
Run Code Online (Sandbox Code Playgroud)

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

  • 这是迄今为止最简单、最有效的方法。 (2认同)

小智 5

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

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