-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 列は Date - dd/mm/yyyy としてフォーマットされています。CDate も実行しないようにしましたが、成功しませんでした。

4

1 に答える 1

1

どのように宣言しましたstrDateか? Dim strDate As String? 変異体?宣言されていませんか?

あなたがやろうとしていることを考えると、実際には Variant または Date として宣言する必要があります。文字列として宣言したようで、セルにも文字列を入力しているようです。

Excel で日付値を入力するときは、文字列ではなく日付として入力する必要があります。それは簡単です; セルが「dd.mm.yyyy」でフォーマットされていることを確認してください。入力すると、そのような日付が正しく受け入れられます。VB から値を取得すると、日付として取得され、日付として操作できるようになります。

その形式の文字列を値に変換したい場合は、次のDate方法を使用できます: VB6 でフィンランドの日付文字列を日付型に解析する

于 2013-05-26T04:25:19.673 に答える