我在这里重塑车轮吗?有一个更好的方法吗?此VBA函数在Access中的表单的注释字段中查找字符串的第一个实例,其中包含20个字符或更少,没有空格,被(〜)代字号包围,然后将其返回。是否有可能更好地编写此VBA代码?
Public Function ParseComment(strComment As String) As String
' This function parses the comment field of the job entry dialog for (~) tilde
' surrounded text, then returns that text.
Dim intCounter As Integer
Dim intFirstChar As Integer
Dim intLastChar As Integer
Dim strResult As String
intFirstChar = 0
intLastChar = 0
intCounter = 0
Do While (intLastChar = 0) And (intCounter < Len(strComment))
intCounter = intCounter + 1
strCharacter = Mid(strComment, intCounter, 1)
If (strCharacter = "~") Then
If intFirstChar Then
intLastChar = intCounter
Else
intFirstChar = intCounter + 1
End If
End If
Loop
strResult = Mid(strComment, intFirstChar, intLastChar - intFirstChar)
If (intLastChar - intFirstChar <= 20) And (intFirstChar <> 0 Or intLastChar <> 0) And Not InStr(strResult, " ") Then
ParseComment = strResult
End If
End Function
非常感谢。
总是可以编写代码更好,但如果这对你的作品何必呢? – NitWit
只需要注意一点,你可以将Dim intFirstChar设为Integer = 0,它可以清理所有的初始化代码,当你声明它们时初始化它们。 – JonH
@JonH“Dim intFirstChar As Integer = 0”将在VBA中导致编译错误。VBA已经将局部整数变量初始化为零,所以即使可能,它也是毫无意义的。它在VB.NET中工作。 – JimmyPena