很抱歉,如果已回答此问题,但我之前未找到有关此问题的任何详细信息。我知道这是一个没有代码的模糊问题,但只是在寻找有关如何实现此目标的想法。在Excel上编写VBA代码。
我有一个工作表,其中包含20多个列和8,000多个数据行。该工作表受密码保护/只读,因为我不希望用户编辑数据(工作表已链接到其他几个宏)。称为“主数据表”。
我创建了一个宏,该宏将过滤主数据表,然后将过滤后的结果粘贴到另一张纸上(称为“过滤结果”),并将数据与另一张单独的纸相结合。用户可以查看和编辑此工作表。
但是,我希望用户放入两列数据,这些数据需要在主数据表中自动复制/镜像(在那些特定的列中)。我遇到的问题是,经过一段时间后,“过滤的结果”表会被删除,但是我仍然需要这些特定列的用户输入数据才能在主数据表中显示。
我不确定如何解决删除工作表但保留数据的问题。
我可以选择的另一种解决方法是复制/粘贴按钮,用户可以单击该按钮将未格式化的数据从“筛选表”复制到“主数据表”。但是,我希望找到一种解决方案,该解决方案会随着用户的输入而自动更新(以防他们忘记单击按钮等)。
感谢所有帮助!
编辑:我正在使用的代码。虽然仍然停留在链接过滤的单元格上。
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
答案 0 :(得分:0)
您可以使用Worksheet_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