Я получаю сообщение об ошибке «Переменная объекта не установлена» в строке 15 при запуске моего кода. Я не получаю это каждый раз. Это кажется случайным. Я искал, но не могу найти причин для этого. У меня возникла проблема с тем, что переменная не очищается все время, поэтому я просто добавил строку 42 Set strText = Nothing. Моя проблема с неправильной настройкой переменной исчезла, но теперь у меня это есть. Любая помощь будет принята с благодарностью. Код ниже.VBScript Объектная переменная не установлена
Option Explicit
Dim i, objFSO, objFile, strText, Fields, TimeStamp, Location, MachNum, Amount, Theme, objSMFile, SMLine, p, CSVLine, objReportFile, FileName
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Do while i<>1
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("C:\Print\output.txt") Then
'*** Clean up CR/LF and Make CSV Variable ***
Set objFile = objFSO.OpenTextFile("C:\Print\output.txt", ForReading)
If Not objFile.AtEndOfStream Then strText = objFile.ReadAll
objFile.Close
' WScript.Sleep 1000
objFSO.CopyFile "C:\Print\output.txt", "C:\Print\outputCopy.txt"
objFSO.DeleteFile("C:\Print\output.txt")
' WScript.Sleep 3000
strText = Replace(strText, vbCrlf, "")
strText = Replace(strText, " ", ";")
' Split by semi-colon into an array...
Fields = Split(strText, ";")
TimeStamp = Fields(0)
Location = Fields(1)
MachNum = Fields(3)
Amount = Fields(4)
'*** Find Machine Number in Slot Master ***
Set objSMFile = objFSO.OpenTextFile("C:\Scripts\SlotMaster.csv", ForReading)
do while not objSMFile.AtEndOfStream
SMLine=objSMFile.readline
p=instr(SMLine, MachNum)
if p>0 then CSVLine = SMLine
Loop
' Split by comma into an array...
Fields = Split(CSVLine, ",")
Theme = Fields(7)
'*** Create Tab Delimited Text File ***
FileName = Year(Now) & "-" & Month(Now) & "-" & Day(Now) & " Jackpots.txt"
If Not objFSO.FileExists("C:\Print\" & FileName) Then
Set objReportFile = objFSO.CreateTextFile("C:\Print\" &FileName)
objReportFile.Close
End If
Set objReportFile = objFSO.OpenTextFile("C:\Print\" & FileName, ForAppending)
objReportFile.Write TimeStamp & vbTab & Location & vbTab & Amount & vbTab & Theme & vbCrLf
objReportFile.Close
Set strText = Nothing
End If
Loop
Предлагаемое чтение: [Как создать минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve) – wogsland