-1

我一直在寻找解决方案,但没有成功。我需要按日期标准填充列表视图,我知道如何用简单的标准填充它,但日期标准给我带来了很多问题。

我的 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 列的格式为日期 - dd/mm/yyyy。我也尝试不做 CDate 但没有成功。

4

1 回答 1

1

你是怎么申报的strDateDim strDate As String? 变种?未申报?

鉴于您正在尝试做的事情,它确实应该被声明为 Variant 或 Date。看起来您将其声明为字符串,并且您也在单元格上输入字符串。

在 Excel 中输入日期值时,应将它们作为日期而不是字符串输入。这很简单; 只需确保单元格的格式为“dd.mm.yyyy”,当您键入它们时它们会正确接受这些日期。当您从 VB 检索值时,它们将作为日期检索,您将能够像这样操作它们。

如果你真的想把那个格式的字符串转换成一个Date值,你可以使用这个方法:Parse finnish date string to Date Type in VB6

于 2013-05-26T04:25:19.673 回答