【问题标题】:Prevent Cell formula from changing防止单元格公式更改
【发布时间】:2015-11-09 12:43:17
【问题描述】:

我有一个 Excel 表格,可以在其中输入值。

例如:

A2 = product name

B2 = product number

C2 = company number

D2 = "#" (allway's the # sign

E2 = "A1"&"D1"&"B1"&"D1"&"C1"

按下按钮后,将运行宏。值会自动 被剪切粘贴到历史记录表中。

单元格 E2 的公式变为粘贴值的位置(在本例中为历史表)。

我想防止单元格 E2 中的公式发生变化,所以我在数字和字母前输入了 $ 符号。并在其前面输入工作表名称。这根本没有什么不同。

有没有人知道这个的解决方案? (或者我是否必须编写一个 vba 代码,将单元格 E2 修改回每次将值剪切并粘贴到历史记录表时所需的公式?)

感谢 Jeeped

使用 Indirect 函数保持引用静态!

非常适合我!

=INDIRECT("'Sheet1'!A2")&INDIRECT("'Sheet1'!D2")& 等等。

【问题讨论】:

  • 不应该 E2 = "A2"&"D2"&"B2"&"D2"&"C2" 吗?
  • 不要剪切和粘贴。 复制并粘贴然后清除输入单元格。
  • 你能在你的问题中显示代码吗?
  • 为什么E2的公式里有引号?

标签: vba excel


【解决方案1】:

如果您想在移动、复制、替换或其他任何位置保持公式静态,则引用必须是静态文本,INDIRECT 用于将它们返回到有效的单元格引用。

在 E2 中,

 =INDIRECT("'Sheet1'!A2")&INDIRECT("'Sheet1'!D2")&INDIRECT("'Sheet1'!B2")&INDIRECT("'Sheet1'!D2")&INDIRECT("'Sheet1'!C2")

如有必要,调整工作表名称。无论您对它们做什么(除了文本编辑),这些单元格地址都不会改变。

【讨论】:

    猜你喜欢
    • 2016-10-14
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多