乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 62|回复: 4

搜索复杂性

[复制链接]

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2015-2-15 08:59:17 | 显示全部楼层 |阅读模式
您好,我正在尝试在不同的excel文件中收集信息
我注意到excel vba在搜索两个相似的单词时总是遇到困难
这些词是;ZK0704706800“;和“;ZK0704707800“;正如你们所见,只有一个数字彼此不同
在许多情况下,excel vba将这些单词视为相同的
这对VBA来说应该不是一项艰巨的任务,你对此有什么想法吗
提前谢谢。
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2015-2-15 10:06:27 | 显示全部楼层
使用“;查找“;“方法”;“范围”;对象
我做了一个简单的测试,把这两个;文字“;在不同的单元格中(单独或在其他字符中),并始终成功识别它们,例如
  1. Dim c As Range
  2. Set c = Range("b2:b100").Find("ZK0704706800", LookIn:=xlValues)
如果它不适合您,请提供有关您的案例环境的更多详细信息
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2015-2-15 10:30:50 | 显示全部楼层
我使用的代码下方的回复配对Thx;Option Explicit
Sub Ayliksiparidene()
Dim a1、a2、a8、a20作为变量
Dim a5、a9、a19、a23、a21、a22、a24作为整数
Dim Rng作为范围
Application。屏幕更新=假范围(第(2)页)。单元格(3、9)、活页(2)。单元格(32,20))。ClearContents a1=ActiveWorkbook。名称(1)。激活a2=Sheets(1)。单元格(1,2)
工作簿。打开a2=ActiveWorkbook。名称a5=32*******************Ayl和305;k bazda模型siparisi hesaplanmas#305
;对于a19=3至a5#039;程序excelinde模型ismi iceren sutunun son dolu sat#305;r努马拉斯#305
;工作簿(a1)。激活;表(2)。激活;a20=薄板(2)。单元格(a19,1)'aranacak模型ismi;a23=0'ayl和305;k siparis adedi s#305;f#305;rland#305
 对于a21=2至a9#039;预测te模型isminin oldugu sat#305;rlar&nbsp 工作簿(a8)。激活'预测excelini aktive et&nbsp 表(1)。激活&nbsp If板材(1)。单元格(a21,1)=a20,然后&nbsp&nbsp 对于a22=4到15&nbsp&nbsp a23=0&nbsp&nbsp 工作簿(a8)。激活#039;预测excelini aktive et&nbsp&nbsp 表(1)。激活&nbsp&nbsp a23=薄板(1)。单元格(a21、a22)&039;型号bas#305;na her ay#305;n siparis adedi&nbsp&nbsp 工作簿(a1)。激活&nbsp&nbsp 表(2)。激活&nbsp&nbsp 设置Rng=范围(“h:h”)。查找(what:=a20,lookat:=xlWhole,LookIn:=xlValues)&nbsp&nbsp a24=Rng。行&nbsp&nbsp 表(2)。单元格(a24,a22+5)=页(2)。细胞(a24,a22+5)+a23&nbsp&nbsp 下一个a22&nbsp 否则:如果结束 下一个a21;下一个a19************************************************************
;工作簿(a1)。激活;表(2)。激活End Sub,正如您所看到的,我正在使用range find方法,但它仍然不起作用。我尝试删除其中一个的最后2位,现在它起作用了
因此这两个单词之间的差异比之前大得多,但这不是一个精确解://p>
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2015-2-16 04:40:15 | 显示全部楼层
我试着阅读了你的代码,但使用了两本阅读你的代码编写的试用工作簿,效果很好。如果你'd张贴你的作业本,看看是什么#039;除此之外,您可能需要考虑以下提示,以大大加快代码速度:
-;激活;方法
-;查找“;“两者都不包括在内”;对于a22=4到15“;和“;对于a21=2到a9“;循环,因为它只取决于;a19“;最外层的循环变量对于上面的内容,我修改了您的代码,如下所示
  1. Option Explicit
  2. Sub AylikSiparisDene()
  3. Dim a20 As Variant
  4. Dim a5, a9, a19, a23, a21, a22, a24 As Integer
  5. Dim Rng As Range
  6. Dim Wb01Sh01 As Worksheet, Wb01Sh02 As Worksheet, Wb02Sh01 As Worksheet
  7. Application.ScreenUpdating = False
  8. Set Wb01Sh01 = ActiveWorkbook.Sheets(1) 'sheet from where to read "forecast excelini" workbook name
  9. Set Wb01Sh02 = ActiveWorkbook.Sheets(2) 'working sheet in main workbook
  10. Wb01Sh02.Range(Cells(3, 9), Cells(32, 20)).ClearContents
  11. Workbooks.Open Wb01Sh01.Cells(1, 2)
  12. Set Wb02Sh01 = ActiveWorkbook.Sheets(1) 'forecast excelini
  13. a5 = 32
  14. a9 = 41
  15. '*******************Aylik bazda model siparisi hesaplanmasi
  16. For a19 = 3 To a5 'program excelinde model ismi iceren sutunun son dolu satir numarasi
  17.     With Wb01Sh02
  18.         a20 = .Cells(a19, 1) 'aranacak model ismi
  19.         Set Rng = .Range("h:h").Find(what:=a20, lookat:=xlWhole, LookIn:=xlValues)
  20.     End With
  21.     a24 = Rng.Row
  22.     a23 = 0 'aylik siparis adedi sifirlandi
  23.     For a21 = 2 To a9 'forecast te model isminin oldugu satirlar
  24.         With Wb02Sh01
  25.             If .Cells(a21, 1) = a20 Then
  26.                 For a22 = 4 To 15
  27.                     a23 = .Cells(a21, a22) 'model basina her ayin siparis adedi
  28.                     Wb01Sh02.Cells(a24, a22 + 5) = Wb01Sh02.Cells(a24, a22 + 5) + a23
  29.                 Next a22
  30.             Else: End If
  31.         End With
  32.     Next a21
  33. Next a19
  34. '************************************************************
  35. Wb01Sh02.Activate
  36. Application.ScreenUpdating = True
  37. End Sub
在这里,我使用工作表变量来避免;激活;方法调用并使代码更具可读性(当然,您可以根据需要更改sheets变量名。)
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2015-2-18 14:27:28 | 显示全部楼层
哇,ric,我在考虑改变这个激活程序,你带来了这个解决方案
这对我来说是个幸运的一天,也是thx。寻找建议
只要我有能力,我会给其他人发张干杯。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-20 15:08 , Processed in 1.664223 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表