我想出了一些问题,我不确定如何比较字符串。
示例
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
答案 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