2011-06-24 57 views
7

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

+0

openoffice,gnumeric,excel,csv,lotus,koffice,google文档,Mac:数字,表格,mesa ...? – sehe

+0

也许问题不是cleas,所以我再次将3个单元格合并到了我的工作表中,但合并单元格的值仅驻留在第一个单元格中。我希望每个单元格都必须具有相同的值,然后才能显示为一个合并单元格。 – Kinshuk

+0

你的工作表?你的纸吗?干细胞?你没有告诉我们你是否在使用电脑,如果是,哪一个。接下来,我们需要知道你使用的是什么应用程序 – sehe

回答

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不知道英文按钮上的文字?)

通过调用宏按Alt-F8,选择它,Run。另外,它映射到一个关键

+1

这使他们...我实际上不想将它们取消合并,我希望它们保持合并,但每个单元格应该有合并单元格中可见的内容... – Kinshuk

+2

@Kinshuk:在这种情况下,你很幸运。 Excel的应用程序对象模型显然不允许这样做。 – sehe

+1

停止使用合并单元格(您可以实现与受保护单元格,隐藏单元格,保护工作表类似的效果;接下来,禁用显示网格线,并使用单元格边框来显示要显示的网格) – sehe

0

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

+0

嗯,也许我没有让自己清楚,我的意思是,我合并了3个单元格在我的表中,但值合并的单元格只驻留在第一个单元格中。我希望每个单元格都必须具有相同的值,然后才能显示为一个合并单元格。不,我不能将它们存储在不同的地方 – Kinshuk

1

你可以做一个新的列(或行),并在第一个单元格套用这个公式,并拖下来:

我在A列假设你已经合并的单元(例如A1: A3 & A5:A8合并)。

  1. 插入列前一列A

  2. 在A1类型:

    =B1 
    
  3. 复制如下式A2:

    =IF(B2="",A1,B2) 
    
  4. 向下拖动式ù键入A2

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

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而不是合并单元格合并单元格,则它将保留数据/公式的“基础”合并单元格。您只需要在其他地方以正确的格式创建一个临时合并的单元格块,以用作Format Painter的模板。你可以在之后删除它们。但要注意的一件事是,像这样的“隐藏”数据可能成为粗心大意的陷阱,因为编辑可见细胞并不会改变看不见的细胞。

+0

这对Excel 2013(15.0.4745.1000)起作用。 – mathiasfk

+0

但是,依靠这个可能不是一个好主意。 – mathiasfk

0

假设“A”栏已合并单元格 - 把这个B1,并复制它来填充柱的其余部分:

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

它检查电池的左侧有一个值,如果它有它返回它的值,如果不是,它将从上面的单元格获取值。

请注意,它不适用于空单元格。首先填充“A”列中的空单元格,填充“B”列后填充“A”和“B”中的空白,并替换为“A”和“B”。

0

无论您选择哪一个,您都可以使用直接给出合并单元格值的自定义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 
  • 现在,可以使用下式在Excel
  • 代码:

    =GetMergedValue(A1) 
    

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

    相关问题