I have a VBA script per mail item for ThisOutlookSession and ignoring the irrelevant parts of the code to my current problem, I am calling the following function:
Function WriteBatFile(inVar As String) As Boolean
On Error GoTo err_handle:
Dim sFile As String
sFile = "C:\Users\ME\Desktop\myScript.bat"
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oFile As Object
Set oFile = fso.CreateTextFile(sFile)
oFile.WriteLine "sleep 2"
oFile.WriteLine "./myScript.sh " & inVar
oFile.WriteLine "exit"
oFile.Close
Set fso = Nothing
Set oFile = Nothing
'MsgBox "Setting True", vbInformation
WriteBatFile = True
err_handle:
'MsgBox "Setting false. Code: "
WriteBatFile = False
Exit Function
End Function
I call this function and test if it returns True or False accordingly:
result = WriteBatFile(match.Value)
If result = True Then
retval = Shell("""C:\Program Files (x86)\PuTTY\plink.exe"" -ssh ME@MYSERVER -m C:\Users\ME\Desktop\runThese.bat", vbNormalFocus)
End If
However, when the function is called the MsgBox shows it is setting True but then the other MsgBox shows the function is setting False. Perhaps the problem is the line WriteBatFile = True?
Of course, the Shell command is never run. I would like your help showing me why?
Thank you.
Your err_handle is just a lable statement, all it does is tell the compiler that line X is called err_handle for GoTo statements. There is nothing keeping the code from just chugging right through it. The best way to fix your issue is to move the line Exit Function to right after you set WriteBatFile to True. So the fixed code will look like this:
'MsgBox "Setting True", vbInformation
WriteBatFile = True
Exit Function
err_handle:
'MsgBox "Setting false. Code: "
WriteBatFile = False
End Function
In err_handle after WriteBatFile is set to False, the program will exit the function natrually when it gets to the End Function. I hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With