vba - VBA:将一个单元格镜像到另一个工作表,然后在删除原始数据后保留数据
问题描述
抱歉,如果这个问题已经得到解答,但我之前找不到任何关于这个问题的细节。我知道这是一个没有代码的模糊问题,但只是在寻找如何解决这个问题的想法。在 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
解决方案
您可以使用该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
推荐阅读
- blockly - 块恢复块
- angular - Ionic 4 路由器以编程方式销毁页面
- asp.net-core - 在 SwaggerDoc 中添加多个联系人 URL
- python - 在这种情况下,“反斜杠”在做什么?
- c# - xamarin 形式 - 元素之间的间距?
- java - 我如何从一个片段到另一个片段的列表视图适配器进行事务
- c++ - C++ 在方程中使用变量;错误:表达式必须具有整数或无范围枚举类型及其他
- html - 如何在左侧每行制作 4 个项目,在右侧制作 4 个项目
- node.js - Node.js fetch 返回空数据
- python - AttributeError 在“from mpl_toolkits.mplot3d import Axes3D”语句中引发