Я создал приложение в Visual Studios, используя VB.NET, при загрузке формы загружает электронную таблицу Excel и выполняет ряд задач перед сохранением и выходом.
Я могу вручную запустить файл .exe, выполнивщелчок, но когда я планирую это через встроенный планировщик задач, он ничего не делает.Задача не останавливается и не выдает ошибку, она просто отображается как запущенная, но никогда не запускается
Я провел различные поиски в сети, чтобы помочь с этим, но я не могу найти что-нибудь где-нибудь.У меня есть другая форма, которая открывает текстовый файл, делает свое дело, а затем закрывает текстовый файл, и это прекрасно работает, поэтому это меня так смущает.Я попытался добавить свой код в текстовый файл и скопировать команды из диспетчера задач текстового файла, но он не работает!Я пришел к выводу, что это что-то, что связано с Excel, так как сам код прекрасно работает, а планирование отлично работает с формой, которая ссылается на текстовый файл.
Любая помощь или предложения приветствуются
Код ниже
Dim filepath1, filepath3, colcontents, rowcontents, txtfile As String
Dim objExcel, objworkbook As Object
Dim coln, rown, rowval As Integer
Dim obj = CreateObject("Scripting.FileSystemObject")
txtfile = FULLFILEPATH
filepath1 = FULLFILEPATH
filepath3 = FULLFILEPATH
filepath3 = FULLFILEPATH
'Define as getfile filepath
Dim objfile = obj.getfile(filepath1)
If ran = False Then
objExcel = CreateObject("Excel.Application")
objExcel.visible = False
rown = 2
coln = 1
colcontents = "Text"
objworkbook = objExcel.workbooks.open(filepath1)
objExcel.sheets("KPIStock").activate
Do Until colcontents = ""
colcontents = objExcel.cells(1, coln).text
coln = coln + 1
Loop
colvalglo = coln
rown = 1
rowcontents = "Text"
'Counts the number of rows that have data in them
Do Until rowcontents = ""
rowcontents = objExcel.cells(rown, 1).text
rown = rown + 1
rowval = rown
Loop
rowvalglo = rowval
MsgBox("Limits Found")
If obj.FileExists(filepath4) Then
'If the file exists then delete it
obj.DeleteFile(filepath4)
Else
End If
'Pass values to set variables
colcontents = "Text"
param1 = Nothing
param2 = Nothing
'Define the object as getting a file from the selected filepath
Dim objfile = obj.getfile(filepath1)
objExcel = CreateObject("Excel.Application")
objExcel.visible = False
'Open selected file
objworkbook = objExcel.workbooks.open(filepath1)
colnc = 9
count = 1
'Loop until there are no column contents and then save this column number into a global variable
Do Until colcontents = ""
rown = 2
'Activate the Parameteres sheet
objExcel.sheets("Parameters").activate
colcontents = objExcel.cells(rown, colnc).text
'Set Param1 equal to what is contained in the parameters sheet and cells
param1 = objExcel.cells(rown, colnc).text
rown = 3
'Set Param2 equal to what is contained in the parameters sheet and cells
param2 = objExcel.cells(rown, colnc).text
objExcel.sheets("KPIStock").activate
colpaste = colvalglo - 1
'Header
rown = 1
'Save the contents of the cell into the selected Variable
objExcel.cells(rown, colpaste).value = param1
'Formula
rown = 2
'Save the contents of the cell into the selected Variable
objExcel.cells(rown, colpaste).value = param2
'Increase various variables by 1
colnc = colnc + 1
colpaste = colpaste + 1
colvalglo = colvalglo + 1
count = count + 1
Loop
rowvalglo = rowvalglo - 2
'Copy all of added data and paste to the bottom
With objExcel
.range(.cells(2, colvalglo - count), .cells(2, colvalglo)).copy
.range(.cells(2, colvalglo - count), .cells(rowvalglo, colvalglo)).pastespecial
End With
'Set specific cell range to a certain colour
With objExcel
.range(.cells(1, colvalglo - count), .cells(1, colvalglo - 65)).Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.LightCyan)
End With
'Set specific cell range to a certain colour
With objExcel
.range(.cells(2, colvalglo - count), .cells(rowvalglo, colvalglo - 65)).Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.LightYellow)
End With
'Set specific cell range to a certain colour
With objExcel
.range(.cells(1, colvalglo - 65), .cells(1, colvalglo - 30)).Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.LightGreen)
End With
'Set specific cell range to a certain colour
With objExcel
.range(.cells(2, colvalglo - 65), .cells(rowvalglo, colvalglo - 30)).Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.LightSalmon)
End With
'Set specific cell range to a certain colour
With objExcel
.range(.cells(1, colvalglo - 30), .cells(1, colvalglo - 3)).Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.LightSteelBlue)
End With
'Set specific cell range to a certain colour
With objExcel
.range(.cells(2, colvalglo - 30), .cells(rowvalglo, colvalglo - 3)).Interior.Color = System.Drawing.ColorTranslator.ToOle(Color.GhostWhite)
End With
'Copy all of added data and paste as values
With objExcel
.range(.cells(2, colvalglo - count), .cells(rowvalglo, colvalglo)).copy
.range(.cells(2, colvalglo - count), .cells(rowvalglo, colvalglo)).Pastespecial(-4163, -4142, True, False)
End With
'Save Output workbook to Filepath4
objExcel.ActiveWorkbook.SaveAs(filepath4)
objworkbook.Close
objExcel.Quit
objExcel = Nothing
objworkbook = Nothing
'Set updated Boolean to TRUE
updated = True
rowval = rowval + 1
'Display message box informating the task has now been complete and to review as required
MsgBox("Defined columns have now been added, please review")