引用单元格但保持源单元格

时间:2017-02-27 13:16:21

标签: excel excel-formula

我有一个包含一些文字的单元格。 说单元格A1。

此文本以某种方式格式化 - 前几个单词为粗体,换行符,不同的字体大小等

当我引用此单元格时,请在单元格B1中说:

=A1

在B1中我只得到一长串文本,其中没有A1

上的格式

有没有办法引用并保持格式化?

我可以使用格式画家,它会识别单元格中的换行符,但部分粗体书写等方面仍然无法识别。

1 个答案:

答案 0 :(得分:3)

根据我的评论:

Private changing As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Target.Address = [A1].Address Or changing Then Exit Sub
    changing = True
    [A1].Copy [B1]
    changing = False

End Sub

上面的代码表示只要对单元格A1具体 A1进行任何更改 - 这样代码就不会执行每个时间在你的工作表上进行了更改 - 这样做会减慢一切的速度),A1中的任何内容都被复制到B2

<强> 用法

使用,只需

  • 右键单击工作表的名称(底部的选项卡),然后选择“查看代码”
  • 将代码粘贴到
  • 将所有单元格引用更改为您想要的那些(即将[A1]替换为[A3][A1:A4][blah](即指定的单元格/范围),具体取决于您的内容需要)
  • 关闭窗口。要保存工作簿,如果要保留宏,则必须另存为.xlsm或.xlb

<强> 备注

  • [A1]ThisWorkbook.ActiveSheet.Range ("A1")的简写。通常我建议不要使用它ActiveSheet表示如果代码在ThisWorkbook中的任何表上运行,它会复制并粘贴A1和{ 该表的{1}},而您可能只想要特定工作表上的特定单元格。
    • 但是在这种情况下,代码仅适用于1张,因此不存在问题。
  • 所有B1内容都是必需的,因为复制/粘贴会触发更改事件;即宏一遍又一遍地触发自己,直到Excel停止它 - 不理想!我声明的changing变量只是作为一个信号来阻止程序自行执行。