如何以原始样式显示另一个单元格的值?

如何以原始样式显示另一个单元格的值?

单元格 A1 包含文本“大胆的正常”。如果我在单元格 A2 中输入=A1,则会显示“Bold normal”,但没有粗体样式。有什么办法可以让 A2 具有相同的内容和格式吗?

答案1

=仅用于数据。字符串、整数等...您必须随后应用格式。Excel 中没有=copyformat(A1)类型函数。

克隆格式的最简单方法是使用格式刷

答案2

在 VBA 中,您可以使用Range.Value(11)属性复制带格式的单元格内容。11 代表xlRangeValueXML电子表格常量。语法为:

dest.Value(11) = src.Value(11)

目的地源码分别表示目标和源范围。它们可能是单个单元格或相同大小的矩形区域。如果要从工作表中调用它,则必须定义 UDF 函数。这不是此类函数的典型用法,但它有效。有(至少)两种变体,您可以使用它。
变体 1。

Function CPF(src As Range, dest As Range) As String
    On Error Resume Next
    dest.Value(11) = src.Value(11)
    On Error GoTo 0
End Function

在空白单元格中输入函数调用。

=CPF(A1, A2)

分隔符如您在本地定义的:逗号或分号。单元格内容(格式化文本常量)从 A1 复制到 A2。该函数返回一个空字符串,但您可以根据需要将其显示出来。如果对单元格值(A1 或 A2)进行了任何更改或编辑了单元格,则将重新计算函数。如果仅更改了格式,则无需重新计算。
变体 2。
您可以从名称框。在这种情况下,函数应返回对完成任务后被选中的单元格的引用。代码有两个可能版本。
版本 A(选择源,给出目标作为参数):

Function CNFx(dest As Range) As Range
    Dim src As Range
    Set src = Selection
    On Error Resume Next
    dest.Value(11) = src.Value(11)
    On Error GoTo 0
    Set CNFx = dest
End Function

必须选择要复制的单元格。目标地址作为参数给出。在名称框(在源单元格的工作表上)中输入例如:

CNFx(Sheet2!B5)

=没有必要。复制后,目标单元格将被选中。
版本 B(源和目标均作为参数给出):

Function CNF(src As Range, dest As Range) As Range
    On Error Resume Next
    dest.Value(11) = src.Value(11)
    On Error GoTo 0
    Set CNF = dest
End Function

在里面名称框例如输入:

CNF(Sheet1!A2:A3, Sheet2!B5:B6)

复制后,目标单元格将被选中。这两个变体之间的区别在于,在第一个变体中,函数调用保留在工作表中,并在必要时重新计算,而在第二个变体中,它只执行一次并被删除。
笔记:使用格式刷您只能复制整个单元格的格式,而不能复制单个字符的格式。

通过 UDF 复制格式化文本

相关内容