Excel精英培训网

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

[已解决]修改代码增加导入信息问题

[复制链接]
发表于 2013-5-24 15:19 | 显示全部楼层 |阅读模式
本帖最后由 sdwffw 于 2013-5-24 15:22 编辑

book1.zip (247.39 KB, 下载次数: 4)

book1.zip

246.13 KB, 下载次数: 5

book1.zip

247.39 KB, 下载次数: 38

 楼主| 发表于 2013-5-24 15:23 | 显示全部楼层
不知为何,传了3个,最后一个是我想传的。
回复

使用道具 举报

发表于 2013-5-24 16:34 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2013-5-24 16:41 | 显示全部楼层
是的,想固定在M列。谢谢老师。
回复

使用道具 举报

发表于 2013-5-24 16:44 | 显示全部楼层    本楼为最佳答案   
  1. Sub 调入数据()
  2.     Application.ScreenUpdating = True
  3.     Range("a4:e4").ClearContents
  4.     Range("b6").ClearContents
  5.     Range("e6:j6").ClearContents
  6.     Range("b7:e7").ClearContents
  7.     Range("c15:m15").ClearContents
  8.     '   On Error GoTo 10
  9.     NAM = Application.GetOpenFilename(FileFilter:="源文档(*.xls),*.xls", Title:="请选取文件导入")
  10.     If NAM = False Then Exit Sub
  11.     Workbooks.Open (NAM)
  12.     With ActiveWorkbook.Sheets(1)
  13.         w = .Range("B65536").End(3).Row
  14.         i = 1
  15.         Set x = .Range("B5:B" & w).Find("序号")
  16.         If Not x Is Nothing Then firstAddress = x.Address
  17.         Do
  18.             n = -1
  19.             Do Until (x.Offset(n, 0) = "申请人名称" Or x.Offset(n, 0) = "企业名称")
  20.                 ReDim Preserve arr(1 To 4, 1 To i)
  21.                 arr(1, i) = x.Offset(n, 0)
  22.                 arr(2, i) = x.Offset(n, 1)
  23.                 arr(4, i) = x.Offset(n, 11)
  24.                 i = i + 1
  25.                 n = n - 1
  26.             Loop
  27.             Set x = .Range("B5:B" & w).FindNext(x)
  28.         Loop While Not x Is Nothing And x.Address <> firstAddress
  29.     End With
  30.     ActiveWorkbook.Close

  31.     BRR = ThisWorkbook.Sheets(3).Range("A2:B" & ThisWorkbook.Sheets(3).Range("A65536").End(3).Row)
  32.     For i = 1 To UBound(arr, 2)
  33.         For j = 1 To UBound(BRR)
  34.             If InStrRev(arr(2, i), BRR(j, 2)) Then
  35.                 arr(2, i) = BRR(j, 2)
  36.                 arr(3, i) = BRR(j, 1)
  37.                 Exit For
  38.             End If
  39.         Next
  40.     Next

  41.     选择.Show 0
  42.     Exit Sub
  43. 10  MsgBox "请检查源文件是否都正确!"
  44.     Application.ScreenUpdating = True
  45. End Sub
复制代码
调入数据的过程改了下,先读取了150的观察员数据,还没有做检验。
回复

使用道具 举报

 楼主| 发表于 2013-5-24 17:17 | 显示全部楼层
谢谢老师。我把代码复制运行后,弹出的“选择打印”表中没把观察员信息调入。
回复

使用道具 举报

 楼主| 发表于 2013-5-24 17:23 | 显示全部楼层
好像是这句语句   arr(4, i) = x.Offset(n, 11) 没起作用。
回复

使用道具 举报

 楼主| 发表于 2013-5-25 05:12 | 显示全部楼层
试着对应修改了关联的两处地方,实现了观察员信息的调入,感谢老师指导。我在原贴提出的第二个问题:“b6单元格调入的观察员,如果“观察员维护”表中已有对应数据,则直接调入;如果“观察员维护”表中无数据,则提示“库中无该人员”,不调入”请老师帮助加段代码,感谢。
回复

使用道具 举报

发表于 2013-5-26 08:42 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-5-26 08:50 编辑
sdwffw 发表于 2013-5-24 17:17
谢谢老师。我把代码复制运行后,弹出的“选择打印”表中没把观察员信息调入。

忘了,窗体的代码没有发给你,窗体的INIT过程里有代码是把ARR的数据加载到LISTVIEW的,那里也要加一行。
  1. ITM.SubItems(3) = arr(4, i)
复制代码
调入数据过程里的
ActiveWorkbook.Close改为
  1. ActiveWorkbook.Close False
复制代码
这样不会有提示是否保存之类的,比较好。
回复

使用道具 举报

发表于 2013-5-26 08:52 | 显示全部楼层
sdwffw 发表于 2013-5-25 05:12
试着对应修改了关联的两处地方,实现了观察员信息的调入,感谢老师指导。我在原贴提出的第二个问题:“b6单 ...

你说的B6单元格是哪个工作簿哪个工作表中的?

按钮所在的通知工作表,貌似是B7吧。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 14:07 , Processed in 0.494124 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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