Excel精英培训网

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

[已解决]查询问题

[复制链接]
发表于 2016-11-5 13:25 | 显示全部楼层 |阅读模式
本帖最后由 jds 于 2016-11-7 11:12 编辑

谢谢老师,帮忙修改下    “修改成入库的C列,在C列任何一单元格输入编码调取数据库内容”
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$C$1" And Target.Address <> "$D$1" Then Exit Sub   
Dim Myr&, Arr, i&, n&
Myr = Sheet2.[c65536].End(xlUp).Row
Arr = Sheet2.Range("c8:K" & Myr): n = 3: m = 3

Range("a4:k1000").Clear
For i = 1 To UBound(Arr)
    If Target.Address = "$C$1" Then
        If Arr(i, 1) >= Target.Value And Arr(i, 1) <= Target.Offset(0, 1).Value Then
            m = m + 1
            Cells(m, 3) = Arr(i, 1)
            Cells(m, 2) = Arr(i, 2)
            Cells(m, 4) = Arr(i, 3)
            Cells(m, 6) = Arr(i, 8)
            Cells(m, 7) = Arr(i, 6)
        End If
    Else
        End If
Next
Cells(4, 1).Resize(m - 3, 11).Borders.LineStyle = 1
End Sub

最佳答案
2016-11-5 18:29
本帖最后由 fjmxwrs 于 2016-11-5 18:40 编辑

对应的哪些内容,你的入库表和数据库表中的项目不同呀,如果代码中对应的不对,你自己改一下对应的列即可
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim myr%, myc%, arr, mybh
  3.     myr = Target.Row
  4.     myc = Target.Column
  5.     If myr > 3 And myc = 3 Then
  6.         arr = Sheet1.UsedRange
  7.         mybh = Target.Value
  8.         For x = 8 To UBound(arr)
  9.             If arr(x, 3) = mybh Then
  10.                 Application.EnableEvents = False
  11.                 Cells(myr, 2) = arr(x, 4)
  12.                 Cells(myr, 4) = arr(x, 1)
  13.                 Cells(myr, 5) = arr(x, 28)
  14.                 Cells(myr, 6) = arr(x, 10)
  15.                 Cells(myr, 7) = arr(x, 8)
  16.                 Application.EnableEvents = True
  17.                 Exit Sub
  18.             End If
  19.         Next x
  20.         MsgBox "没有找到该编码!"
  21.     End If
  22. End Sub
复制代码


查询求助.zip

72.26 KB, 下载次数: 5

发表于 2016-11-5 13:47 | 显示全部楼层
b列输入=VLOOKUP($C4,数据库!C:AC,2,0),其他的红色数值,3,26,8?数据源没有写清楚,我猜的是那些,还可以用index+match组合查找
回复

使用道具 举报

 楼主| 发表于 2016-11-5 13:56 | 显示全部楼层
苏子龙 发表于 2016-11-5 13:47
b列输入=VLOOKUP($C4,数据库!C:AC,2,0),其他的红色数值,3,26,8?数据源没有写清楚,我猜的是那些,还可 ...

谢谢您关注,我忘记说明了,我想要代码调取
回复

使用道具 举报

发表于 2016-11-5 18:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 fjmxwrs 于 2016-11-5 18:40 编辑

对应的哪些内容,你的入库表和数据库表中的项目不同呀,如果代码中对应的不对,你自己改一下对应的列即可
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim myr%, myc%, arr, mybh
  3.     myr = Target.Row
  4.     myc = Target.Column
  5.     If myr > 3 And myc = 3 Then
  6.         arr = Sheet1.UsedRange
  7.         mybh = Target.Value
  8.         For x = 8 To UBound(arr)
  9.             If arr(x, 3) = mybh Then
  10.                 Application.EnableEvents = False
  11.                 Cells(myr, 2) = arr(x, 4)
  12.                 Cells(myr, 4) = arr(x, 1)
  13.                 Cells(myr, 5) = arr(x, 28)
  14.                 Cells(myr, 6) = arr(x, 10)
  15.                 Cells(myr, 7) = arr(x, 8)
  16.                 Application.EnableEvents = True
  17.                 Exit Sub
  18.             End If
  19.         Next x
  20.         MsgBox "没有找到该编码!"
  21.     End If
  22. End Sub
复制代码


查询求助.zip

78.85 KB, 下载次数: 11

回复

使用道具 举报

 楼主| 发表于 2016-11-7 11:13 | 显示全部楼层
感谢fjmxwrs老师,谢谢您的帮助
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 04:25 , Processed in 0.293039 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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