可以考虑采用OCR插件,即在电脑上安装OCR控件,然后在VB程序中调用该控件。如WPS,紫光、汉王的OCR系统都带有可调用的控件,但都比较大,而且有使用限制。我曾经用过一个免费的91OCR控件,识别效果还马马虎虎可以。
用正则表达式就行了呀,至于怎么写与正则表达式,可以参考站长之家的站长工具里的正则表达式。代码如下下面是一个函数,判断字符串是否仅由汉字组成:
function ishans(s)
dim regex as object
set regex=createobject("vbscript.regexp")
regex.global=true
regex.pattern="^[\u2e80-\ufe4f]+$"
'这个pattern就是正则表达式
ishans=regex.test(s)
set regex=nothing
end function
可以用建立辅助列、多条件统计公式、向下填充的方法解决。特别指出:“向下填充”方法速度很快。代码如下:
Sub 查找重复行()
Dim a As Integer
Dim i As Integer
Dim str As String
a = Range("a65536").End(xlUp).Row '计算数据行数
Cells(1, 255).FormulaArray = "=SUM(IF($A$1:$A$" &a &"=A1,IF($B$1:$B$" &a &"=B1 ,1,0)))" '在辅助列上写入多条件统计公式
Cells(1, 255).Resize(a, 1).Select '选择辅助列
Selection.FillDown '向下填充
Cells(1, 1).Select
For i = 1 To a
If Cells(i, 255).Value >1 Then
Cells(i, 1).Resize(1, 2).Interior.Color = 255
str = str &i &","
End If
Next i
Cells(1, 255).Resize(a, 1).Clear '清除辅助列
str = Mid(str, 1, Len(str) - 1) '去掉str最后一个“,”号
MsgBox "第" &str &"行重复。"
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)