我一直在寻找解决方案,但没有成功。 我需要按日期标准填充列表视图,我知道如何用简单的标准填充它,但是日期标准给了我很多问题。
我的Excel文档中的B列中有日期(dd.mm.yyyy),我需要将它们转换为日期,并与我从表单上的日历控件中选择的日期进行比较。如何在VB6中将该默认日期设置为dd.mm.yyyy? 我是初学者,我不知道我哪里错了,请帮助我。提前谢谢。
Do Until .Cells(myCounter, 1) & "" = ""
strDate = listObj.Range("B" & myCounter)
myDate= CDate(strDate) >>>>>>>>>> Run-time error "13" Mismatch type
If myDate > Calendar1.Value Then
.........................
End If
myCounter =myCounter + 1
Loop
编辑:这是我的整个代码
Dim excelObj As excel.Application
Dim wbObj As excel.Workbook
Dim sheetObj As Worksheet
Dim myCounter As Long
Set excelObj = New excel.Application
excelObj.Visible = False
Set wbObj = excelObj.Workbooks.Open(App.Path & "\excel_document.xlsx")
Set sheetObj = excelObj.Worksheets("Sheet1")
Dim L As ListItem
Dim myDateAs Date
Dim strDate As String
ListView1.ListItems.Clear
With sheetObj
myCounter = 2
Do Until .Cells(myCounter, 1) & "" = ""
strDate = sheetObj.Range("B" & myCounter)
myDate= CDate(strDate)
If myDate > Calendar1.Value Then
........
End If
myCounter = myCounter + 1
Loop
End With
excelObj.Quit
在excel文档中,B列的格式为Date - dd / mm / yyyy。我也试过不做CDate,但没有成功。
答案 0 :(得分:1)
你是如何宣布strDate
的? Dim strDate As String
?变异?没声明?
考虑到你要做的事情,它确实应该被声明为Variant或Date。看起来您将其声明为String,并且您还在单元格上输入字符串。
在Excel中输入日期值时,应将其输入为日期而不是字符串。这很简单;只需确保单元格格式为“dd.mm.yyyy”,当您键入它们时,它们将正确接受这些日期。当您从VB检索值时,它们将作为日期检索,您将能够像这样操作它们。
如果您确实想要将该格式的字符串转换为Date
值,则可以使用以下方法:Parse finnish date string to Date Type in VB6