2012-10-09 15 views
10

Outlook'ta bir klasör oluşturmak için .vbs dosyası oluşturdum. Komut dosyasının çoğunu MSDN'dan kopyaladım ve bir "Beklenen Bitiş Tarihi" hata kodu 800A0401 yanıtı aldım.800A0401 - Beklenen Sonucun Sonucu

Option Explicit 
Dim myNameSpace As Outlook.NameSpace 
Dim myFolder As Outlook.Folder 
Dim myNewFolder As Outlook.Folder 

Set myNameSpace = Application.GetNamespace("MAPI") 
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox) 
Set myNewFolder = myFolder.Folders.Add("Postini") 

Wscript.Echo "Folder created" 
Wscript.Quit 

Önceden bir .vbs komut dosyasını hiç oluşturma. Ne eksik olduğumdan emin değilim.

Windows 7 64-bit ve Outlook 2010. Yerel yönetici olarak çalıştırılıyor.

cevap

23

Bu hata, değişkenleri özellikle VBS'de bir şey olarak azaltamayacağınız içindir. Daha açık bir şekilde, "Dim" deyimi VBScript'teki değişken türünü tanımlamaksızın kullanılır çünkü VBScript'teki tüm değişkenler otomatik olarak Varyant türündedir. Bir değişkeni herhangi bir şey olarak Dim olarak denerseniz, bir hata verir.

Bunun yerine, istiyorum:

Dim myNameSpace 
Dim myFolder 
Dim myNewFolder 

Ayrıca, sadece Outlook bazı VBA kopyalanıp VBS olarak çalıştırmak için çalıştık görünüyor.

VBscript, Application.GetNameSpace("MAPI")'un nasıl yorumlanacağını bilmez.

Ayrıca bir Outlook uygulaması oluşturmanız da gerekecektir. (. Ben CreateObject kullanılır neden olan) aşağıdaki gibi de

dim myOutlook 
set myOUtlook = CreateObject("Outlook.Application") 

Eğer VBS başvurular sağlayamaz, çünkü, herhangi nesneler için bağlayıcı geç kullanmak zorunda Yani kodunuzu yeniden yazılmış olan:

Option Explicit 
Dim myOutlook 
Dim myNameSpace 
Dim myFolder 
Dim myNewFolder 

set myOUtlook = CreateObject("Outlook.Application") 
Set myNameSpace = myOutlook.GetNamespace("MAPI") 
Set myFolder = myNameSpace.GetDefaultFolder(6) '6 is the value of olFolderInbox 
Set myNewFolder = myFolder.Folders.Add("Postini") 
Wscript.Echo "Folder created" 
Wscript.Quit 
+0

Oh, VBScript'in büyük/küçük harf duyarlı olup olmadığından emin değilsiniz, ilk "set" satırında myOUtlook'unuz var. – gravyface

+0

Bu, VBA'nın teknik olarak büyük/küçük harfe duyarlı olmadığı anlamına gelmez. Fark, VBA’da IDE’nin büyük harf tutarsızlıklarını otomatik olarak güncelleyeceğidir. –