"Run time error '13':Type mismatch - VB

Узнай цену своей работы

Формулировка задачи:

"Run time error '13':Type mismatch
Исходный вариант моего кода такой.
Ошибка возникает между строчками
AddLog " " & NumFiles + NumFiles1 & " Files found"
и
AddLog " " & FileToFind & " found in " & tempPath
и уже проявилась на двух PC, после первой записи оба лога обрываются. причем на моих 3-х и еще 2-х PC ничего такого не было, и выловить пока не могу.
Сейчас убрал tempDate = 0, м.б.неаккуратно написал, беру сначала дату-время первого файла, добавил вывод в лог после каждой строчки, жду логов, но уже бесит.
Грешил на то что м.б. нет msvbvm60.dll, но понял, что ее не может не быть-без нее не запускается вообще ничего.
Или с Listbox какая-нибудь фигня может получиться?
Вообще надо бы API какие-нибудь поискать для сравнения дат файлов, но сейчас хочу понять что не так именно тут.

Решение задачи: «"Run time error '13':Type mismatch»

textual
Листинг программы
FindFileInCab = <font color="teal">"FileName="</font> & FileInfo.FileName & <font color="teal">";Path="</font> & Archive & <font color="teal">";DateTime="</font> & FileInfo.<font color="blue">DateTime</font> & <font color="teal">";"</font>
...
<font color="blue">Dim</font> WFD <font color="blue">As</font> WIN32_FIND_DATA
Form1.List1.AddItem <font color="teal">"FileName="</font> & FileName & <font color="teal">";Path="</font> & Path & <font color="teal">";DateTime="</font> & fFileTimeToVBATime(WFD.ftLastWriteTime) & <font color="teal">";"</font>

<font color="blue">Public</font> FileInfo <font color="blue">As</font> FindFileInfo
<font color="blue">Public</font> <font color="blue">Type</font> FindFileInfo
    FileName <font color="blue">As</font> <font color="blue">String</font>
    <font color="blue">DateTime</font> <font color="blue">As</font> <font color="blue">Date</font>
    Size <font color="blue">As</font> Variant
    Path <font color="blue">As</font> <font color="blue">String</font>
<font color="blue">End</font> <font color="blue">Type</font>
<font color="blue">Public</font> <font color="blue">Type</font> WIN32_FIND_DATA
    dwFileAttributes <font color="blue">As</font> <font color="blue">Long</font>
    ftCreationTime <font color="blue">As</font> FILETIME
    ftLastAccessTime <font color="blue">As</font> FILETIME
    ftLastWriteTime <font color="blue">As</font> FILETIME
    nFileSizeHigh <font color="blue">As</font> <font color="blue">Long</font>
    nFileSizeLow <font color="blue">As</font> <font color="blue">Long</font>
    dwReserved0 <font color="blue">As</font> <font color="blue">Long</font>
    dwReserved1 <font color="blue">As</font> <font color="blue">Long</font>
    cFileName <font color="blue">As</font> <font color="blue">String</font> * MAX_PATH
    cAlternate <font color="blue">As</font> <font color="blue">String</font> * <font color="darkblue"><b>14</b></font>
<font color="blue">End</font> <font color="blue">Type</font>
<font color="blue">Public</font> <font color="blue">Type</font> FILETIME
    dwLowDateTime <font color="blue">As</font> <font color="blue">Long</font>
    dwHighDateTime <font color="blue">As</font> <font color="blue">Long</font>
<font color="blue">End</font> <font color="blue">Type</font>

<font color="blue">Public</font> <font color="blue">Type</font> SYSTEMTIME
    wYear <font color="blue">As</font> <font color="blue">Integer</font>
    wMonth <font color="blue">As</font> <font color="blue">Integer</font>
    wDayOfWeek <font color="blue">As</font> <font color="blue">Integer</font>
    wDay <font color="blue">As</font> <font color="blue">Integer</font>
    wHour <font color="blue">As</font> <font color="blue">Integer</font>
    wMinute <font color="blue">As</font> <font color="blue">Integer</font>
    wSecond <font color="blue">As</font> <font color="blue">Integer</font>
    wMilliseconds <font color="blue">As</font> <font color="blue">Integer</font>
<font color="blue">End</font> <font color="blue">Type</font>


<font color="blue">Public</font> <font color="blue">Function</font> fFileTimeToVBATime(ftFileTime <font color="blue">As</font> FILETIME, _
 Optional fLocal <font color="blue">As</font> <font color="blue">Boolean</font> = True) <font color="blue">As</font> <font color="blue">Date</font>

<font color="blue">Dim</font> stSystem        <font color="blue">As</font> SYSTEMTIME
<font color="blue">Dim</font> ftLocalFileTime <font color="blue">As</font> FILETIME
    <font color="00AA00">'</font>
    <font color="00AA00">' Converts Windows FILETIME date/time value to VBA.</font>
    <font color="00AA00">'</font>
    <font color="00AA00">' If the user wants local time, convert the file</font>
    <font color="00AA00">' time to local file time.</font>
    <font color="00AA00">'</font>
    <font color="blue">If</font> fLocal <font color="blue">Then</font>
        <font color="blue">Call</font> FileTimeToLocalFileTime(ftFileTime, ftLocalFileTime)
        ftFileTime = ftLocalFileTime
    <font color="blue">End</font> <font color="blue">If</font>
    <font color="00AA00">'</font>
    <font color="00AA00">' Convert the file time to system time then</font>
    <font color="00AA00">' call our own function to convert to VBA time</font>
    <font color="00AA00">'</font>
    <font color="blue">If</font> CBool(FileTimeToSystemTime(ftFileTime, stSystem)) <font color="blue">Then</font>
        fFileTimeToVBATime = fSysTimeToVBATime(stSystem)
    <font color="blue">End</font> <font color="blue">If</font>
<font color="blue">End</font> <font color="blue">Function</font>
<font color="blue">Private</font> <font color="blue">Function</font> fSysTimeToVBATime(stSysTime <font color="blue">As</font> SYSTEMTIME) <font color="blue">As</font> <font color="blue">Date</font>
    <font color="00AA00">'</font>
    <font color="00AA00">' Converts Windows SYSTEMTIME to VBA date/time.</font>
    <font color="00AA00">'</font>
    <font color="00AA00">' Consrtuct a VBA date/time value using the</font>
    <font color="00AA00">' DateSerial and TimeSerial functions.</font>
    <font color="00AA00">'</font>
    <font color="blue">With</font> stSysTime
        fSysTimeToVBATime = DateSerial(.wYear, .wMonth, .wDay) + _
                        TimeSerial(.wHour, .wMinute, .wSecond)
    <font color="blue">End</font> <font color="blue">With</font>
<font color="blue">End</font> <font color="blue">Function</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5