在Excel中search列中的字母字符

我有一些来自其他来源的Excel文件,我需要检查他们有没有不小心把数字字段中的字母字符。 并非所有variables都只是数字,我不能简单地清除字母字符。

我怎样才能标出这些情况,以便我能够引起发送数据的人的注意。

这段代码将做我认为你需要的东西。 将其添加到VBA编辑器中的常规模块,然后运行名为catchmixedvals的macros

该代码假定以下(但您可以更改这些以适应):

数据在名为“数据”的工作表中

数据从单元格“A3”开始

包含“混合”数据的单元格将被填充为红色

数据保持不变

Sub catchmixedvals() Dim ws1 As Worksheet Dim stRow As Long, stCol As Long Dim enRow As Long, enCol As Long Dim drng As Range Dim cl As Range Set ws1 = Worksheets("Data") stRow = 3 stCol = 1 With ws1 'determine data range enRow = .Cells(.Rows.Count, stCol).End(xlUp).Row enCol = .Cells(stRow, .Columns.Count).End(xlToLeft).Column Set drng = Range(.Cells(stRow, stCol), .Cells(enRow, enCol)) 'examine each cell in data range For Each cl In drng On Error Resume Next If IsNumeric(cl) Then 'do nothing its a number Else 'a text cell therefore check for digits For i = 1 To Len(cl) If Mid(cl, i, 1) >= "0" And Mid(cl, i, 1) <= "9" Then cl.Interior.ColorIndex = 3 Exit For End If Next End If Next cl End With End Sub 

您可以使用ISTEXT()来查看单元格是否包含文本,或者您可以对范围使用条件格式,并查看它是否介于“A”和“Z”之间,并且是否如此格式化背景颜色:

在这里输入图像说明

你可以在字段上执行一个算术运算,并捕获exception来跳过/标记它