【问题标题】:How to hide part of cell content?如何隐藏部分单元格内容?
【发布时间】:2022-06-26 23:50:27
【问题描述】:

我想在 Excel 中隐藏部分单元格内容,就像在 MS Word 中一样,我们可以在其中设置所选文本的 Hidden 属性。这个想法是显示一个有代表性的部分,而基础数据可以通过Range(...).Value2 检索。不幸的是,我在 Excel 的 Font 对象中没有看到 Hidden 属性。

作为替代方案,我认为可以使用一些custom number format。我找到了内容占位符@,所以我可以隐藏、替换和填充文本。但是,我没有看到部分显示内容的选项。

是否可以在单元格中设置文本的显示部分?


2022 年 6 月 26 日更新

目前我正在使用事件处理和数字格式的组合。像这样的:

Private Sub Worksheet_Change(ByVal Target As Range)
Const Data = "A1"    ' data area to look for
Dim Common As Range
Dim Cell As Range
    Set Common = Intersect(Target, Range(Data))
    If Common Is Nothing Then Exit Sub
    For Each Cell In Common
        Cell.NumberFormat = ";;;" & GetFormat(Cell.Value2)
    Next Cell
End Sub
 
Private Function GetFormat(ByVal Value) As String
' Return the first five characters for demonstration purposes
Const Quote = """"
    GetFormat = Quote & Left(Value, 5) & "..." & Quote
End Function

结果如下:

和以前一样,我希望这个过程可以简化。

附言
另外需要注意的是,过滤数据时,下拉列表会显示可见值,这在某些情况下非常方便。例如,当您需要根据同义词过滤名称时,我发现将所有同义词替换为基本名称并在过滤器中使用它很方便,将原始名称保留在单元格中。

【问题讨论】:

  • 将一些文本格式化为单元格的背景颜色。
  • 无论您如何在ab Excel 单元格中隐藏文本,您总是能够通过单击单元格在内容编辑栏中看到实际文本
  • 必要时使用“SUBSTITUTE”包含/排除所需的文本
  • 您可能还想考虑每个单元格可以包含 cmets,这些 cmets 是隐藏的,可以用于您想要的任何东西...automateexcel.com/vba/add-or-remove-cell-comments
  • @dbmitch 这就是重点。我想将与日期或数字格式相同的方法应用于文本。举个例子,如果文本是文件的完整路径,我只想查看文件名,但基础值应该是完整路径(这不是我的目标,只是说明)。另一个示例 - 隐藏完整消息并仅保留提及的名称。或者隐藏完整的消息并仅显示其模式。

标签: excel vba


【解决方案1】:

正如您在回答中所述,Excel 中没有 hidden Font 属性,而您可以在 Word 中找到该属性。但是,有多种变通方法可以提供相同的“某种隐藏”功能(请注意,这不是安全功能)。 Word 中的这个用例(对我来说)似乎有点少,除了可能改变打印方式和记录笔记? Comments and Notes 在单元格中可能更合适。

我最初考虑使用字体颜色,但这在功能上与 Hide 属性不同,因为 Hide 属性会删除文本而不是将其变白(因此您将有一个隐藏文本长度的空格)。

总的来说,我认为在文本字符串中使用if statement 和全局true/false 驱动单元格可能是最接近的方法。

例如,如果单元格A1 具有真或假,则任何具有以下公式的单元格都可以在显示和不显示隐藏文本之间切换:

="I have "&IF(A1,"a hidden text  ","")& "to think about."

如果您从不希望文本可见,那么您可以硬编码false

="I have "&IF(False,"a hidden text  ","")& "to think about."

虽然与您的问题没有直接关系,但如果您希望在作为值(不是文本)的单元格公式中有一些 注释N function 是我使用过的东西因为它将任何文本转换为零,因此可以在计算后包含在内。示例:

=SUM(A:A)+N("This is a summation of all values in column A")

【讨论】:

  • 感谢N("some note") hack。
猜你喜欢
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 2022-10-24
  • 1970-01-01
相关资源
最近更新 更多