Excel 复制并保存

Excel 复制并保存

我想让 excel 将“B1”的内容复制到“A1”,并且即使删除了“B1”,“A1”中的内容仍会保留。这可能吗?

答案1

如果B1包含数据而不是公式,只需复制B1并粘贴到A1

如果B1包含公式,然后B1点击复制。然后A1点击粘贴特殊值B1.这将保留中的当前值A1

答案2

实现此目的的最佳方法可能是通过 Excel VBA。VBA(Visual Basic for Applications)是一种编程语言,可用于自动执行 Excel 和其他 Office 应用程序中的任务。

由于你没有给我们太多信息,这是一个非常简单脚本。您需要扩展它来检查错误。(例如,如果您一次修改多个单元格,这将不起作用。)

去做这个:

  1. 打开工作簿并单击您想要完成此任务的工作表。

  2. 右键单击工作表的选项卡,然后单击查看代码

  3. 一个单独的窗口应该会打开,其中包含一个空白文档。在该文档中,插入以下代码:

    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
    
  4. 验证文档是否适用于正确的工作表,然后关闭代码编辑器。

我将逐步解释这一点:

  1. Private Sub Worksheet_Change(ByVal Target As Range)表示只要工作表中的单元格发生变化,就应运行此代码。
  2. Dim KeyCells As RangeSet KeyCells = Range("B1:B10")指定我们要检查更改的范围。在本例中我选择了B1:B10,但您可以将其更改为您想要的任何内容。
  3. If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then检查改变的单元格是否在我们想要的范围内。(即B1:B10在本例中。)如果不是,那么我们什么也不做。
  4. If Not Target.Value = "" Then检查已更改单元格的值是否为空字符串。这样,删除时不会发生任何变化。
  5. Target.Offset(0, -1).Value = Target.Value将更改的单元格的值复制到其左侧的单元格中。也就是说,如果我们更改B3,则将A3更新。
  6. 其余的只是结束一切。

以下是一张有用的图片:

在此处输入图片描述

相关内容