Excel-VBA的Range.Find问题
2016-12-07 08:06
603 查看
前两天一直使用的一个VBA宏突然运行结果错误,仔细核查发现是Range.Find找不到结果:
断点调试的结果是,rng始终为nothing,而Sheet2.Cells(6,"B").Offset(,i)是日期格式,但与searchRng的日期格式不一致。
百般折腾,使用Sheet2.Cells(6,"B").Offset(,i).Value、Sheet2.Cells(6,"B").Offset(,i).Value2,Find时使用参数LookIn:=xlValues,都是不起作用。
因为急着使用,所以用Format(CDate(Sheet2.Cells(6,"B").Offset(,i).Value),"m/d")更改了所有类似的代码,得以渡过难关。
问题是,这个VBA代码没有改动过,Excel中单元格格式也没有改动过,究竟是哪里出了问题?
-----------------------------------------------------------------
后来又出现了问题,2017/1/1和2017/1/2查找不到,但是2017/1/3能找到。使用Lookat:=xlWhole查找整个内容。
暂时用Set rng = searchRng.Find(what:=Sheet2.Cells(6, "B").Offset(, i).Text,Lookat:=xlWhole)
替代执行
Set searchRng = Sheet3.Range(Sheet3.Cells(2, "C"), Sheet3.Cells(2, "C").End(xlToRight)) For i = 1 To colCount - 2 Set rng = searchRng.Find(Sheet2.Cells(6, "B").Offset(, i)) If Not rng Is Nothing And rowCount > 7 Then For j = 7 To rowCount - 1 Select Case Sheet2.Cells(j, "B") Case 9 Sheet3.Cells(4, rng.Column) = Sheet2.Cells(j, i + 2) Case 12 Sheet3.Cells(6, rng.Column) = Sheet2.Cells(j, i + 2) Case 15 Sheet3.Cells(8, rng.Column) = Sheet2.Cells(j, i + 2) Case 17 Sheet3.Cells(10, rng.Column) = Sheet2.Cells(j, i + 2) End Select Next j End If Next i
断点调试的结果是,rng始终为nothing,而Sheet2.Cells(6,"B").Offset(,i)是日期格式,但与searchRng的日期格式不一致。
百般折腾,使用Sheet2.Cells(6,"B").Offset(,i).Value、Sheet2.Cells(6,"B").Offset(,i).Value2,Find时使用参数LookIn:=xlValues,都是不起作用。
因为急着使用,所以用Format(CDate(Sheet2.Cells(6,"B").Offset(,i).Value),"m/d")更改了所有类似的代码,得以渡过难关。
问题是,这个VBA代码没有改动过,Excel中单元格格式也没有改动过,究竟是哪里出了问题?
-----------------------------------------------------------------
后来又出现了问题,2017/1/1和2017/1/2查找不到,但是2017/1/3能找到。使用Lookat:=xlWhole查找整个内容。
暂时用Set rng = searchRng.Find(what:=Sheet2.Cells(6, "B").Offset(, i).Text,Lookat:=xlWhole)
替代执行
相关文章推荐
- excel VBA 公式计算结果引用问题
- Excel VBA Range对象基本操作应用示例(转贴,实用参考)
- excel 问题,vba
- 请问: vba, excel中打开多个xls文件, 搜索字符串,写入另一个sheet的问题
- [讨论] Excel Range写入大量数据的效率问题
- vba 自动导入excel报表遇到的问题及解决方法
- excel的VBA插图源代码,解决2010版后插图源路径破坏图片不影响问题
- Delphi通过VBA操作Excel的两个问题
- Referencing an Excel Pivot Table Range using VBA
- VBA运行时提示“类range的select方法无效”问题
- How to Find a Blank Cell in Excel Using Vba
- 利用VBA代码解决Excel下拉菜单跳过空单元格的问题
- 请高人帮忙,excel vba编程问题 求助高手,跪谢 ,小弟QQ306372734
- Excel VBA 想关问题
- 【VBA研究】Excel时间比较要注意的一个问题
- asp.net excel 权限问题
- [VBA]在后台删除工作表后出现的怪问题
- 在Excel中使用VBA来筛选数据
- delphi 的Excel问题搜集 from CSDN
- 文件流形式导出为Excel的文件编码问题