C# 字符串比较

C# 字符串比较,c#,vba,compare,string-comparison,C#,Vba,Compare,String Comparison,目前,我正在尝试将一个函数(与字符串进行比较并检查匹配百分比)从C#转换为VBA C#: 我在第一行比较中得到一个错误,“参数不是可选的”。我转换错了什么?这是否符合要求?您是否希望返回非/匹配项 Function StringCompare(str1 As String, str2 As String) As Double Dim intLength As Integer Dim iLetter As Integer intLength = Len(str1) For i = 1 To

目前,我正在尝试将一个函数(与字符串进行比较并检查匹配百分比)从C#转换为VBA

C#:


我在第一行比较中得到一个错误,“参数不是可选的”。我转换错了什么?

这是否符合要求?您是否希望返回非/匹配项

Function StringCompare(str1 As String, str2 As String) As Double

Dim intLength As Integer
Dim iLetter As Integer

intLength = Len(str1)

For i = 1 To intLength
    If Mid(str1, i, 1) = Mid(str2, i, 1) Then
        StringCompare = StringCompare + 1
    End If
Next

StringCompare = StringCompare / intLength

End Function

这是否符合要求?您是否希望返回非/匹配项

Function StringCompare(str1 As String, str2 As String) As Double

Dim intLength As Integer
Dim iLetter As Integer

intLength = Len(str1)

For i = 1 To intLength
    If Mid(str1, i, 1) = Mid(str2, i, 1) Then
        StringCompare = StringCompare + 1
    End If
Next

StringCompare = StringCompare / intLength

End Function

这发生在哪一行pairs1=WordLetterPairs(UCase(str1))尝试更改pairs1=WordLetterPairs(UCase(str1))以设置pairs1=WordLetterPairs(UCase(str1))。分配对象变量时必须使用Set关键字。请尝试将函数WordLetterPairs(str作为字符串)设置为集合,并在分配值时使用Set。请记住,暗显如下:交叉点、并集、i、j作为整数意味着只有j是整数,暗显时其他都是变量类型。您的函数都没有返回类型,@RyanWildry建议WordLetterPairs应该返回集合,但您也应该正确声明其他函数的返回类型。顺便说一句,由于WorldLetterPairs返回它自己的集合,您不必将pairs1和pairs2
声明为新集合
,您应该删除
New
。这发生在哪一行pairs1=WordLetterPairs(UCase(str1))尝试更改pairs1=WordLetterPairs(UCase(str1))以设置pairs1=WordLetterPairs(UCase(str1))。分配对象变量时必须使用Set关键字。请尝试将函数WordLetterPairs(str作为字符串)设置为集合,并在分配值时使用Set。请记住,暗显如下:交叉点、并集、i、j作为整数意味着只有j是整数,暗显时其他都是变量类型。您的函数都没有返回类型,@RyanWildry建议WordLetterPairs应该返回集合,但您也应该正确声明其他函数的返回类型。顺便说一句,由于WorldLetterPairs返回它自己的集合,您不必将pairs1和pairs2
声明为新集合
,您应该删除
New
。这是一种正确的方向,但c有点挑剔。这是一种正确的方向,但c有点挑剔
Function StringCompare(str1 As String, str2 As String) As Double

Dim intLength As Integer
Dim iLetter As Integer

intLength = Len(str1)

For i = 1 To intLength
    If Mid(str1, i, 1) = Mid(str2, i, 1) Then
        StringCompare = StringCompare + 1
    End If
Next

StringCompare = StringCompare / intLength

End Function