【问题标题】:Is it possible to have a cell which contains a formula and be able to input text into the same cell?是否可以有一个包含公式的单元格并能够将文本输入到同一个单元格中?
【发布时间】:2015-02-18 09:07:41
【问题描述】:

我正在尝试在 excel 中创建,您在单元格中输入首字母缩写,此人的全名会自动显示,因此他们不必每次都在电子表格中输入全名。我已经设法为不同的人使用嵌套的 if 语句来复制它,这工作正常,但目前它需要两个单元格,我希望将它放在同一个单元格上。我注意到,如果我将公式更改为在同一个单元格中,那么它会出现“循环引用警告”并且不起作用,如果我尝试在该单元格中输入文本,它会替换公式。只是想知道这可能吗?

=IF(C29="HB", "hazel", IF(C29="AO", "amelia", ""))

【问题讨论】:

  • 如果您对它在同一个单元格中没有感到厌烦,您可以使用 vlookup,它提供在不同表中维护的首字母列表。这将依赖于所有具有唯一首字母缩写的用户(同样,任何系统都可以),并且您必须在添加新用户时维护该列表。
  • 一种选择是在您输入姓名的列的顶部保留一个列表,然后隐藏该列表。然后,当您开始在下面输入名称时,只要它与上面的唯一匹配项,它就会填写剩余的字母。不是首字母缩写,但总比没有好。

标签: excel if-statement excel-formula formula cells


【解决方案1】:

您可以使用 Excel 的自动更正功能来执行此操作。

转到文件..选项..校对 -

点击自动更正选项..

输入一对(或三个)要替换的首字母,以及要替换的姓名,然后点击添加。然后您可以继续添加替换为定义。

输入小写“hb”或大写“HB”的替换无关紧要,因为条目及其替换都添加到小写的定义中。

Excel 这样做是有原因的——它对单元格输入的大小写敏感。也就是说,如果您输入“hb”,自动更正会将其更改为“hazel”;如果您输入“Hb”,您将获得“Hazel”; “HB”会给你“HAZEL”。

您输入的替换对将仅适用于当前记录的用户名。替换对将在您每次打开 Excel 时出现,并且可用于所有打开的工作簿。

如果您希望其他用户可以使用替换对,您需要:

  • 手动将替换对添加到所有需要的用户 Excel 选项或
  • 开发一个宏以使用Application.AutoCorrect.AddReplacement "hb", "hazel" 添加它们

如果您决定采用宏路径,您可能希望通过在某些工作簿或工作表事件中输入定义来限制定义的范围,并考虑使用Application.AutoCorrect.DeleteReplacement "hb" 方法。

Workbook_Open 替换将在所有工作簿中对当前用户可用,并且将一直保留到手动或以编程方式删除。

Workbook_Activate 和 Workbook_Deactivate 如果您使用 Workbook_Activate 中的 AddReplacement 方法和 Workbook_Deactivate 中的 DeleteReplacement 方法,则替换将仅适用于包含代码的工作簿中的工作表。

Worksheet_Activate 和 Worksheet_Deactivate 将代码放在上述工作表事件处理程序中的工作表模块中,替换将仅在与该模块对应的工作表中可用。

【讨论】:

    【解决方案2】:

    这只是一个示例,您可以根据自己的需要进行调整。首字母输入将在列 A 中,因此如果用户在该列的单元格中键入 JW,则该单元格将更改为 James Ravenswood

    将以下事件宏放入工作表代码区:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim A As Range
        ary = Array("JW", "VL", "BJM")
        bry = Array("James Ravenswood", "Victor Laszlo", "Bullwinkle J Moose")
        Set A = Range("A:A")
        If Intersect(Target, A) Is Nothing Then Exit Sub
        v = Target.Value
        For i = LBound(ary) To UBound(ary)
            If v = ary(i) Then
                Application.EnableEvents = False
                    Target.Value = bry(i)
                Application.EnableEvents = True
                Exit Sub
            End If
        Next i
    End Sub
    

    您需要用您的姓名首字母和姓名填写 arybry

    因为是工作表代码,所以非常容易安装和自动使用:

    1. 右键单击 Excel 窗口底部附近的选项卡名称
    2. 选择查看代码 - 这将打开一个 VBE 窗口
    3. 粘贴内容并关闭 VBE 窗口

    如果您有任何疑虑,请先在试用工作表上进行尝试。

    如果您保存工作簿,宏将与它一起保存。 如果您使用的是 2003 年以后的 Excel 版本,则必须保存 文件为 .xlsm 而不是 .xlsx

    要删除宏:

    1. 如上所示打开 VBE 窗口
    2. 清除代码
    3. 关闭 VBE 窗口

    要了解有关宏的更多信息,请参阅:

    http://www.mvps.org/dmcritchie/excel/getstarted.htm

    http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

    要了解有关事件宏(工作表代码)的更多信息,请参阅:

    http://www.mvps.org/dmcritchie/excel/event.htm

    必须启用宏才能正常工作!

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      相关资源
      最近更新 更多