Excel VBA:如何比较特定字符串

时间:2015-05-20 09:06:17

标签: excel vba excel-vba

我想出了一些问题,我不确定如何比较字符串。

示例

Dim DateStart as String
Dim CompareDate as String
DateStart = "01-05-15"

CompareDate我输入值02-05-15,如何将01-05与02-05进行比较?

我不想将Dim DateStart用作日期。

还有我如何比较Column而不是Row? 我用于比较行的当前代码是:

iRow = ws.Cells.Find(what:="*", After:=ws.Range("a1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1

2 个答案:

答案 0 :(得分:0)

如果您不使用" Dim DateStart作为日期"也许你可以使用" CDate(DateStart)"比较时。

如果您需要特定格式,可以使用(例如):

Format(CDate(DateStart), "dd/mm/yy")

答案 1 :(得分:0)

  

我如何比较01-05与02-05

由于您正在进行String匹配,请尝试此

Sub Sample()
    Dim DateStart As String
    Dim CompareDate As String

    CompareDate = "02-05-15"
    DateStart = "01-05-15"

    If Left(DateStart, (InStrRev(DateStart, "-", -1, vbTextCompare) - 1)) = _
       Left(CompareDate, (InStrRev(CompareDate, "-", -1, vbTextCompare) - 1)) Then
        MsgBox "Matches"
    Else
        MsgBox "Doesn't Match"
    End If
End Sub

InStrRev函数从字符串的-开始,在另一个字符串中返回第一次出现的字符串(end)的位置。

或者你可以使用这个简单的代码

If Left(DateStart, 5) = Left(CompareDate, 5) Then
    MsgBox "Matches"
Else
    MsgBox "Doesn't Match"
End If

关于你的第二个问题,我很抱歉,我不明白你想要达到的目标。也许如果你改写它?

修改:您是不是想要SearchOrder:=xlByColumns代替SearchOrder:=xlByRows