使用vba检查excel中的特殊字符

。 我有一个Excel电子表格,其中包含一些string与在Windows 7中不可见的Unicode字符控制字符。因此,我想写一个macros来遍历列中的每个单元格,检查控制字符是否存在。 如果find一个控制字符,我想填充下一列的相邻单元格中的字符名称和它可以在string中find的索引。

这是我迄今为止:

Sub control_chr() ' ' control_chr Macro ' ' Dim control_characters(Chr(28), Chr(29), Chr(30), Chr(31), Chr(32)) Dim r As Range, cell As Range Set r = Range("F4:F1029") For Each cell In r For Each Character In control_characters 

下一步将search每个字符的单元格,然后用结果填充相邻的单元格。 我的第一个想法是使用SEARCH()函数,因为它返回find字符的索引。 这是我第一次使用visual basic,我不知道如何继续

这里有一些代码可以做你所问的:

 Sub ListControlChars() Dim control_characters As Variant Dim r As Range, cell As Range, ResultCell As Range Dim CharPosition As Long Dim i As Long control_characters = Array(28, 29, 30, 31, 32) Set r = ActiveSheet.Range("F4:F1029") For Each cell In r Set ResultCell = cell.Offset(0, 1) ResultCell.ClearContents CharPosition = 0 For i = LBound(control_characters) To UBound(control_characters) CharPosition = InStr(cell, Chr(control_characters(i))) If CharPosition > 0 Then ResultCell = ResultCell.Value & "Char " & control_characters(i) & ": Position " & CharPosition & " - " End If Next i Next cell End Sub 

如果你想在Excel中做到这一点,你可以像这样设置它:

在这里输入图像说明

B2中的公式是:

 =IFERROR(SEARCH(CHAR(B$1),$A2),"")