vba代码求助,将修改区域复制到数组中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba代码求助,将修改区域复制到数组中?相关的知识,希望对你有一定的参考价值。
当前表格操作区域为b3:z100
建立二维数组arr(3 to 100, 2 to 25)
我需要触发以下两个事件
如果修改了 e3 单元格数据 则把修改的数据存入arr(3,5)
如果是剪贴板复制粘贴到range(cells(5, 6), cells(8, 10)) 则自动赋值给数列arr(5,6)到arr(8, 10) 位置
最近在研究事件,请老师指导一下
下面截图代码可以实现在当前工作表复制并在目标表格更新,但是中间还没等我处理数据就完成了
后边的问题提到“但是中间还没等我处理数据就完成了”这一句我没搞清楚你想要做什么数据处理,在你的代码里Applicatiion.EnableEvents = False已经锁定了程序在运行期间不再响应其他事件,因此再做其他数据处理系统识别为其余事件默认是不会有反应的。追问
我意思是arr数组只是暂时存储数据,经过计算以后再更新数据到目标表格
追答如果是经过计算后再更新到目标表格,可以2个方式,1是在事件处理程序中加入计算过程的代码;2是计算完成后增加一个的事件处理程序来更新目标表格。
参考技术A 关于楼主截图的事件代码做了以下简化(代码针对的表格跟sheet1不是一个表格,如果是一个表格,代码就多余了)Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Copy Sheet1.Range(Target.Cells(1).Address)
Application.EnableEvents = True
End Sub
Application.EnableEvents 如果sheet1表格没有对应事件的话,这段代码似乎多余。不过要整体考虑文件结构。没有文件很多内容对应不上的。
上面关于数组使用的描述,不知道是要解决什么问题的?
所以上下逻辑没有对应上,不好进一步说明的
利用vba怎样编写将工作表中第三行到最后一行(不确定)的数据复制并插入到另一个工作表的第二行前?
插入表中的原第二行数据下移到表尾
原则上VBA可以做到,但是你没有说清楚什么才叫做新的,只看日期吗,只看序号吗,我就假设你的A列是序号,用序号判断吧,程序代码如下:
参考技术A将工作表中1第三行到最后一行(不确定)的数据复制并插入到工作表2的第二行前,VBA代码为:
Sub x()Sheets(1).Range("3:" & Sheets(1).UsedRange.Rows.Count).Copy
Sheets(2).Range("2:2").Insert
End Sub 参考技术B Sub 插入复制()
X = Range("a65536").End(xlUp).Row
Rows("3:" & X).Select
Selection.Copy
Sheets("Sheet2").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
End Sub
复制到Sheet1表
将Sheet1 第3行开始的数据插入到Sheet2第2行
以上是关于vba代码求助,将修改区域复制到数组中?的主要内容,如果未能解决你的问题,请参考以下文章
求助!请教VBA高手! 有没有哪位高手有编制过调用翻译软件实现在excel中,英文译成中文的?
如何将单元格区域作为表格从 Excel 复制到 PowerPoint - VBA