VBA:将单元格镜像到另一张图纸,然后在删除原始单元格后保留数据

VBA:将单元格镜像到另一张图纸,然后在删除原始单元格后保留数据,vba,excel,Vba,Excel,如果已经回答了,我很抱歉,但是我以前找不到任何关于这个问题的细节。我知道这是一个没有代码的模糊问题,但我只是想知道如何处理这个问题。在Excel上编写VBA代码 我有一个工作表,其中包含20多列和8000多行数据。该工作表受密码保护/只读,因为我不希望用户编辑数据(该工作表链接到其他几个宏)。称为“主数据表” 我创建了一个宏,该宏将过滤主数据表,然后将过滤结果粘贴到另一个工作表上(称为“过滤结果”),并将数据与另一个单独的工作表相结合。用户可以查看和编辑此工作表 但是,我希望用户在主数据表中自动

如果已经回答了,我很抱歉,但是我以前找不到任何关于这个问题的细节。我知道这是一个没有代码的模糊问题,但我只是想知道如何处理这个问题。在Excel上编写VBA代码

我有一个工作表,其中包含20多列和8000多行数据。该工作表受密码保护/只读,因为我不希望用户编辑数据(该工作表链接到其他几个宏)。称为“主数据表”

我创建了一个宏,该宏将过滤主数据表,然后将过滤结果粘贴到另一个工作表上(称为“过滤结果”),并将数据与另一个单独的工作表相结合。用户可以查看和编辑此工作表

但是,我希望用户在主数据表中自动复制/镜像两列数据(在这些特定列中)。我遇到的问题是,“筛选结果”表在一段时间后被删除,但我仍然需要在主数据表中包含这些特定列的用户输入数据。

我不确定如何避免删除工作表但保留数据的问题

我的另一种解决方法是复制/粘贴按钮,用户可以单击该按钮将未格式化的数据从过滤表复制到主数据表。然而,我希望找到一个解决方案,它只会随着用户类型自动更新(以防他们忘记单击按钮等)

谢谢你的帮助

编辑:我现在正在使用的代码。但仍然坚持链接过滤后的单元格

Private Sub Worksheet_Change(ByVal Target As Range)

  Application.EnableEvents=False

    If Not Intersect (Target, Range("D1:D1000")) Is Nothing Then
          Target.Copy Destination:=Worksheets("Master Data 
          File").Range(Target.Address)
    End If

  Application.EnableEvents=True

End Sub

您可以使用
工作表\u Change
事件检查特定范围是否已更改,然后复制/更新其他工作表。这样,当原始数据更改时,您可以自动进行复制/粘贴

示例:
如果要在A1:A5范围的值更改时将其复制到另一张图纸中:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A5")) Is Nothing Then 'range A1:A5 was changed
        Target.Copy Destination:=Worksheets("OtherSheet").Range(Target.Address)
    End If
End Sub

谢谢你,佩赫。我几乎可以做到这一点,但当它“复制”单元格时,它会进入同一单元格中的主数据表(MDS)。i、 e.镜像过滤表(FS)中的单元格A5结果会更改MDS中的单元格A5。但是,在FS中,数据已被过滤,因此单元格与MDS中的单元格不匹配。i、 e.FS中的单元格A5是MDS中的单元格A19,但匹配值仍将显示在A5中。有什么办法可以解决这个问题吗?已经发布了我当前在OP中使用的代码。除此之外,我不确定如何添加一个新的工作表(过滤数据表),其中已嵌入此工作表更改代码。查看了VisualBasic的可扩展性,但很难理解它。