Здравствуйте, ничего не понимаю в vba, необходимо вставить в ячейку размер файла в байтах (другого файла на который указан путь) и контрольную сумму md5. (по возможности в одной ячейке указываешь путь, в других появляется размер и контр. сумма). Полазив по форуму удалось сделать только автоматическую вставку даты и времени. Похожие темы видел, но что-то не смог сам сделать
Здравствуйте, ничего не понимаю в vba, необходимо вставить в ячейку размер файла в байтах (другого файла на который указан путь) и контрольную сумму md5. (по возможности в одной ячейке указываешь путь, в других появляется размер и контр. сумма). Полазив по форуму удалось сделать только автоматическую вставку даты и времени. Похожие темы видел, но что-то не смог сам сделатьИбет
Dim fsoFile, FileDateTime, s Dim FilePath As String Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject") 'FilePath = "C:\Users\Альберт\Desktop\УЛ\Раздел ПД №5 подраздел ПД №6 ИОС6.pdf" FilePath=[a1] Set fsoFile = objFSO.GetFile(FilePath) FileDateTime = (fsoFile.DateCreated) [d4] = FileMD5(FilePath) [d6] = FileDateTime 'в ячейку d6 текущего листа вставляем дату создания файла [f6] = FileLen(FilePath) End Sub Function FileMD5$(sFilePath$) On Error GoTo err Dim byteArr() As Byte With CreateObject("adodb.stream") .Type = 1: .Open: .LoadFromFile sFilePath byteArr = .read End With With CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") FileMD5 = Join(Application.Dec2Hex(.ComputeHash_2(byteArr), 2), "") End With Erase byteArr Exit Function err: Debug.Print "Err: " & err.Number & " - " & err.Description FileMD5$ = err.Description End Function
[/vba]
[vba]
Код
Sub MifV()
Dim fsoFile, FileDateTime, s Dim FilePath As String Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject") 'FilePath = "C:\Users\Альберт\Desktop\УЛ\Раздел ПД №5 подраздел ПД №6 ИОС6.pdf" FilePath=[a1] Set fsoFile = objFSO.GetFile(FilePath) FileDateTime = (fsoFile.DateCreated) [d4] = FileMD5(FilePath) [d6] = FileDateTime 'в ячейку d6 текущего листа вставляем дату создания файла [f6] = FileLen(FilePath) End Sub Function FileMD5$(sFilePath$) On Error GoTo err Dim byteArr() As Byte With CreateObject("adodb.stream") .Type = 1: .Open: .LoadFromFile sFilePath byteArr = .read End With With CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") FileMD5 = Join(Application.Dec2Hex(.ComputeHash_2(byteArr), 2), "") End With Erase byteArr Exit Function err: Debug.Print "Err: " & err.Number & " - " & err.Description FileMD5$ = err.Description End Function