Поднял это как новый пост, как и просили.
Этот сценарий делает именно то, что я хочу на локальном ПК: добавляет текстовый файл, помещает его в текстовое поле для подтверждения, после подтверждения добавляет текст в тему электронного письма. Но когда тот же скрипт запускается на терминальном сервере, он не может найти файл. Любая идея, почему он не может видеть файл и почему это не будет работать на терминальном сервере?
Как я уже сказал, все локальные установки Outlook работают нормально, он может найти файл email.txt
, но на терминальном сервере этого не происходит. Я подтвердил, что файл находится в папке.
Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(Environ("USERPROFILE") & "\temp\email.txt")
ReadAllTextFile = f.ReadAll
End Function
Public Sub UpdateSubject()
Dim SaveCode As String
Dim KeyWord As String
Dim objItem As MailItem
KeyWord = "ABD"
SaveCode = InputBox("Please enter filecode in the format nnn/nnn", "VisualFiles Auto Save", ReadAllTextFile)
MsgBox SaveCode
Set objItem = GetCurrentItem()
objItem.Subject = "[" + KeyWord + "=" + SaveCode + "] " + objItem.Subject
End Sub
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
Set objApp = Nothing
End Function
Если я сообщу о местоположении, как показано ниже, это даст мне правильное местоположение, например C:\users\bobby\temp\email.txt
.
MsgBox (Environ("USERPROFILE") & "\temp\email.txt")
Environ("USERPROFILE") & "\temp\email.txt"
существует? Папкаtemp
для Windows (обычно) не находится непосредственно в папке UserProfile (отметьтеenviron("Temp")
, поэтому ее необходимо создать вручную. - person FunThomas   schedule 12.02.2019