我想让 excel 将“B1”的内容复制到“A1”,并且即使删除了“B1”,“A1”中的内容仍会保留。这可能吗?
答案1
如果B1
包含数据而不是公式,只需复制B1
并粘贴到A1
。
如果B1
包含公式,然后B1
点击复制。然后A1
点击粘贴特殊值B1
.这将保留中的当前值A1
。
答案2
实现此目的的最佳方法可能是通过 Excel VBA。VBA(Visual Basic for Applications)是一种编程语言,可用于自动执行 Excel 和其他 Office 应用程序中的任务。
由于你没有给我们太多信息,这是一个非常简单脚本。您需要扩展它来检查错误。(例如,如果您一次修改多个单元格,这将不起作用。)
去做这个:
打开工作簿并单击您想要完成此任务的工作表。
右键单击工作表的选项卡,然后单击查看代码。
一个单独的窗口应该会打开,其中包含一个空白文档。在该文档中,插入以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range Set KeyCells = Range("B1:B10") If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then If Not Target.Value = "" Then Target.Offset(0, -1).Value = Target.Value End If End If End Sub
验证文档是否适用于正确的工作表,然后关闭代码编辑器。
我将逐步解释这一点:
Private Sub Worksheet_Change(ByVal Target As Range)
表示只要工作表中的单元格发生变化,就应运行此代码。Dim KeyCells As Range
并Set KeyCells = Range("B1:B10")
指定我们要检查更改的范围。在本例中我选择了B1:B10
,但您可以将其更改为您想要的任何内容。If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
检查改变的单元格是否在我们想要的范围内。(即B1:B10
在本例中。)如果不是,那么我们什么也不做。If Not Target.Value = "" Then
检查已更改单元格的值是否为空字符串。这样,删除时不会发生任何变化。Target.Offset(0, -1).Value = Target.Value
将更改的单元格的值复制到其左侧的单元格中。也就是说,如果我们更改B3
,则将A3
更新。- 其余的只是结束一切。
以下是一张有用的图片: