Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2375|回复: 1

[已解决]如何让代码在不同的sheet中取数~!?

[复制链接]
发表于 2014-11-2 21:46 | 显示全部楼层 |阅读模式
本帖最后由 win9 于 2014-11-2 22:19 编辑

Sub 查询()
Arr = Sheet1.UsedRange‘(这是指定数据在SHEET1工作表中)如何修改成,当在SHEET3中执行这代码它能在sheet3中取数?
ReDim arr1(1 To UBound(Arr), 1 To 9)                '当在sheet4中执行代码,就在sheet4工作表中取数???
Set d = CreateObject("scripting.dictionary")
Set d1 = CreateObject("scripting.dictionary")
For x = 6 To UBound(Arr)
   d1(Arr(x, 20)) = d1(Arr(x, 20)) + Arr(x, 18)
    If Arr(x, 6) = "退" Or Arr(x, 6) = "销" Or Arr(x, 6) = "退送" Then
   d(Arr(x, 20)) = ""
   End If
Next
P = d.keys
q = d1.keys
t = d1.items
For i = 0 To d.Count - 1
For x = 5 To UBound(Arr)
For j = 0 To d1.Count - 1
  If Arr(x, 20) = P(i) Then
  If q(j) = P(i) And t(j) <> 0 Then
   k = k + 1
   arr1(k, 1) = Arr(x, 20)
   arr1(k, 2) = Arr(x, 3)
   arr1(k, 3) = Arr(x, 4)
   arr1(k, 4) = Arr(x, 5)
   arr1(k, 5) = Arr(x, 6)
   arr1(k, 6) = Arr(x, 15)
   arr1(k, 7) = Arr(x, 9)
   arr1(k, 8) = Arr(x, 18)
   arr1(k, 9) = Arr(x, 11)
   End If
   End If
   Next
Next
Next

Cells(6, "G").Resize(UBound(arr1), 9) = arr1

    End Sub

最佳答案
2014-11-2 22:00
'Arr = Sheet1.UsedRange     '在指定固定取数工作表
改为Arr = ActiveSheet.UsedRange '在当前活动工作表取数

发表于 2014-11-2 22:00 | 显示全部楼层    本楼为最佳答案   
'Arr = Sheet1.UsedRange     '在指定固定取数工作表
改为Arr = ActiveSheet.UsedRange '在当前活动工作表取数

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 04:40 , Processed in 0.227973 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表