Sub 保存()
Dim arr, brr, d, i&
Set d = CreateObject("scripting.dictionary")
Sheet1.Activate
arr = Range("a10").CurrentRegion
brr = Sheet2.Range("a1").CurrentRegion
For i = 2 To UBound(arr)
d(arr(i, 7)) = i + 9
Next
For i = 2 To UBound(brr)
If d.exists(brr(i, 7)) Then Rows(d(brr(i, 7))).Copy Sheet2.Cells(i, 1)
Next
End Sub
求帮忙解释VBA代码
答案:2 悬赏:80 手机版
解决时间 2021-02-16 00:19
- 提问者网友:欲望失宠
- 2021-02-15 21:30
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-02-15 22:33
Sub 保存()
Dim arr, brr, d, i& '定义 数组arr, 数组 brr, d 对象, i 为长整形
Set d = CreateObject("scripting.dictionary") ' d 赋值为字典对象
Sheet1.Activate ' 激活工作表sheet1
arr = Range("a10").CurrentRegion ' 对arr赋值,将A10 所在范围内的数赋值给arr数组
brr = Sheet2.Range("a1").CurrentRegion ' brr赋值,同arr
For i = 2 To UBound(arr) ' 根据arr数组大小,进行循环
d(arr(i, 7)) = i + 9 '对d字典赋值,d的键为数组arr(i,7),值为 i+9
Next
For i = 2 To UBound(brr) '根据brr数组大小,进行循环
If d.exists(brr(i, 7)) Then Rows(d(brr(i, 7))).Copy Sheet2.Cells(i, 1) '如果d字典的键已经存在,
那么将sheet1的 第( 字典的键)行复制Sheet2.Cells(i, 1) 单元格
Next
End Sub
Dim arr, brr, d, i& '定义 数组arr, 数组 brr, d 对象, i 为长整形
Set d = CreateObject("scripting.dictionary") ' d 赋值为字典对象
Sheet1.Activate ' 激活工作表sheet1
arr = Range("a10").CurrentRegion ' 对arr赋值,将A10 所在范围内的数赋值给arr数组
brr = Sheet2.Range("a1").CurrentRegion ' brr赋值,同arr
For i = 2 To UBound(arr) ' 根据arr数组大小,进行循环
d(arr(i, 7)) = i + 9 '对d字典赋值,d的键为数组arr(i,7),值为 i+9
Next
For i = 2 To UBound(brr) '根据brr数组大小,进行循环
If d.exists(brr(i, 7)) Then Rows(d(brr(i, 7))).Copy Sheet2.Cells(i, 1) '如果d字典的键已经存在,
那么将sheet1的 第( 字典的键)行复制Sheet2.Cells(i, 1) 单元格
Next
End Sub
全部回答
- 1楼网友:荒野風
- 2021-02-15 23:39
查找匹配,找到相同的就把相应行复制到Sheet2的对应行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯