"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 какие-нибудь поискать для сравнения дат файлов, но сейчас хочу понять что не так именно тут.
Исходный вариант моего кода такой.
Ошибка возникает между строчками
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>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д