我在尝试找到一个长度等于或大于9位数的数字时遇到了一些问题。
我写了这个,如果数字小于9,它会选择它,否则它不会。
数字的格式如下1013617518
Sub LoopThroughDirectory()
Application.DisplayAlerts = False
Dim Ifind As String, rngData As Range
Dim rngFound As Range
Dim r As Long
MyPath = "C:/"
activefile = Dir(MyPath & "*.csv")
r = 1
Start:
If Range("A" & r) = "" Then
Exit Sub
End If
Application.ScreenUpdating = False
Do While activefile <> ""
Ifind = Range("A" & r).Value
Workbooks.Open Filename:=MyPath & activefile
Set rngData = ActiveSheet.Range("B:B")
Set rngFound = rngData.Find(Ifind, LookIn:=xlValues)
ActiveWorkbook.Close
If Not rngFound Is Nothing Then
Range("B" & r) = activefile
r = r + 1
GoTo Start
Else: Range("B" & r) = "Not Found"
End If
activefile = Dir()
Range("A" & r).Select
Loop
Application.ScreenUpdating = True
r = r + 1
activefile = Dir(MyPath & "*.csv")
GoTo Start
Application.Display Alerts = True
End Sub
任何想法为什么它不能捡起它们并选择较短的数字将是很好的
答案 0 :(得分:1)
将您的查找语句更改为
Set rngFound = rngData.Find(Ifind, LookIn:=xlFormulas)
由于9位数以上的数字通常以xEy表示法显示,除非您采取其他预防措施。在导入不包含“真实”公式的CSV时,这是安全的。
提示: 您是否在编码之前模拟了手工查找(即Ctrl-F)?它也不起作用,当CSV被正确地分成行并且你去“按值”搜索你的10位数字时,它确实可以“按公式”工作
祝你好运 拾音