自定义函数如下,请添加到要使用的Excel文件的VBA代码模块中
Function IsCircleText(ByVal 字符串 As String)
Do While Len(字符串) > 1
If Left(字符串, 1) <> Right(字符串, 1) Then
IsCircleText = "no!"
Exit Function
End If
字符串 = Mid(字符串, 2, Len(字符串) - 2)
Loop
IsCircleText = "yes!"
End Function
不知道你是不是要放在工作表的change事件来处理这件事.所谓工作表的change事件就是当工作表的单元格内容发生变化后触发这个事件.并自动执行相关代码.
这是我按你的要求写的放在工作表change事件里的代码 因为不知道回文的位置 所以我假定回文是在A列.yes no 输出在B列同行的单元格.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim FXstr
FXstr = StrReverse(Target.Value)
If FXstr = Target.Value Then
Target.Offset(0, 1) = "YES!"
Else
Target.Offset(0, 1) = "NO!"
End If
End If
End Sub
或者用自定义函数
Function ChackHw(str)
If str = "" Then ChackHw = ""
Dim FXstr
FXstr = StrReverse(str)
If FXstr = str Then
ChackHw = "YES!"
Else
ChackHw = "NO!"
End If
End Function
这个到不是很难。只是感觉你的分有些少啊。字符串处理很烦人的。
告诉你个思路,你自己做吧。先用len函数测出字符串长度除以2后-1,以此为循环次数。分别取字符串两端的字符进行对比,如果均成功。msgbox 输出yes,否则msgbox输出no
算了...