Я создал сценарий, который позволяет пользователю открывать файл с использованием браузера оболочки, и после его выбора им предлагается ввести интервал, в котором они хотят разбить файл .CSV на меньшие файлы.Открытие VBScript CSV и разбиение
Возникает проблема в том, что после выбора файла с помощью браузера я получаю неуказанную ошибку с кодом 80004005, она появляется в строке 15 символа 1, и я понятия не имею, как это решить.
Любая помощь была бы высоко оценена!
Option Explicit
Const ForReading = 1
Const ForWriting = 2
Dim objFSO, objInputFile, objOutputFile
Dim intLine, intFile
Dim strHeaders
Dim strInputFile, strOutputPrefix, strLine
Dim MyDate
Dim shell
Dim file
Set shell = CreateObject("Shell.Application")
Set file = shell.BrowseForFolder(0, "Choose a file:", &H4000)
BrowseForFile = file.self.Path
strInputFile = BrowseForFile
strOutputPrefix = objFSO.GetBaseName(strInputFile) & DatePart("yyyy", Now) & "-" & DatePart("m", Now) & "-" & DatePart("d", Now)
userSplit = InputBox("Enter when you want to split")
intFile = 1
intLine = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInputFile = objFSO.OpenTextFile(strInputFile, ForReading)
If (objInputFile.AtEndOfStream = True) Then
' The file is empty
WScript.Quit 1
End If
strHeaders = objInputFile.ReadLine
Do While (objInputFile.AtEndOfStream = False)
strLine = objInputFile.ReadLine
If (intLine <= 0) Then
Set objOutputFile = objFSO.CreateTextFile(strOutputPrefix & "_" & intFile & ".csv", True)
objOutputFile.WriteLine strHeaders
intLine = 1
End If
objOutputFile.WriteLine strLine
If (intLine >= userSplit) Then
objOutputFile.Close
Set objOutputFile = Nothing
intFile = intFile + 1
intLine = 0
Else
intLine = intLine + 1
End If
Loop
У вас есть опция Option On;;) Вы должны объявить 'BrowseForFile'. Также что такое 'objFSO'? Вы должны создать объект для его использования. Я не проверял остальную часть кода после этого –
Все еще бросаю сообщение об ошибке «Установить файл = shell.BrowseForFolder (0,« Выбрать файл: », & H4000)« –
Он работает для меня. Вы делаете это для VBScript? Протестировано на Win 7, 64 бит –