ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1400|回复: 6

[求助] 单元格的格式有什么区别吗?运行后无反应

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-13 17:08 | 显示全部楼层 |阅读模式

程序写出来后运行,未提示有任何不对,但是运行完就是没有任何结果出来?我通过EXCEl自带的查找功能,能看到单元格间相同数值,但是VBA查不到,是因为两列数据格式不同,导致VBA不识别?


Sub chazhao()

Dim i As Long
Dim j As Long
Dim r As Long
Dim k As Long
        r = Sheet1.Range("b65536").End(xlUp).Row
        k = Sheet1.Range("m65536").End(xlUp).Row
   For j = 3 To k
      For i = 3 To r
         If Range("m" & j).Value = Range("b" & i).Value Then
           Range("n" & j).Value = Range("c" & i).Value
         End If

    Next i
Next j

End Sub


长期监控.rar

28.01 KB, 下载次数: 1

TA的精华主题

TA的得分主题

发表于 2018-8-13 17:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=LEN(B3)

=LEN(M3)

看一样不

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-13 17:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
运行
LEN(B3)

LEN(M3),得到的都是0,说明什么那?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-13 17:41 | 显示全部楼层
运行这个
MsgBox Len(Range("b3"))
MsgBox Len(Range("m3"))

第一个是27,第二个是21,应是什么问题那

TA的精华主题

TA的得分主题

发表于 2018-8-13 17:45 | 显示全部楼层
If Replace(Range("m" & j).Value, " ", "") = Replace(Range("b" & i).Value, " ", "") Then

TA的精华主题

TA的得分主题

发表于 2018-8-13 17:46 | 显示全部楼层
这样可以有结果,,但你的两个for好像有点问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-14 09:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gdw831001 发表于 2018-8-13 17:46
这样可以有结果,,但你的两个for好像有点问题

后来我用find 方法,通过模糊查找,就可以忽略空格单元格了,最终找出对应项,你提示的replace 实在不会用。

你说的两个“for"的使用,也么有问题,后来我通过EXCEL自带的TRIM()函数,先修剪,然后再用IF THEN, FOR NEXT 是可以实现的,运行可以得到结果。
谢谢你的思路,在这里学到很多东西,感谢和你一样热心的人。


Sub DFDF()
  Application.ScreenUpdating = False
  With Sheet1
    .[N3:N74] = ""
    Set r = .[B3:B62]
    For i = 3 To .Cells(.Rows.Count, "m").End(xlUp).Row
      Set B = r.Find(.Cells(i, "m"), lookat:=xlPart)
      If Not B Is Nothing Then
        
      .Cells(i, "n") = .Cells(B.Row, "c")
      End If
      Next i
      End With
      
     Application.ScreenUpdating = True
      
      
      
      
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 01:47 , Processed in 0.036524 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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