2016-05-23 28 views
0

從來就調用procedure.There的問題有兩個:使用選擇的情況下,如果對程序型動物

Public Sub altaorange() 
Dim OutApp As Outlook.Application 
Dim OutMail As Outlook.MailItem 
Set OutApp = CreateObject("Outlook.Application") 
Set OutMail = OutApp.CreateItem(olMailItem) 
With OutMail 
    .To = "[email protected]" 
    .CC = "" 
    .BCC = "" 
    .Subject = "Alta de línea. ATT MR" 
    .Body = "Hello MR" 
    'Se pueden adjuntar ficheros 
    '.Attachments.Add ("C:\Mi_Fichero.pdf") 
    .Display 'tambien se puede usar .Send y lo situa en la bandeja de salida 
End With 
Set OutMail = Nothing 
Set OutApp = Nothing 

末次

和:

Public Sub bajaorange() 
Dim OutApp As Outlook.Application 
Dim OutMail As Outlook.MailItem 
Set OutApp = CreateObject("Outlook.Application") 
Set OutMail = OutApp.CreateItem(olMailItem) 
With OutMail 
    .To = "[email protected]" 
    .CC = "" 
    .BCC = "" 
    .Subject = "Baja de línea . ATT MR" 
    .Body = "Hello MR" 
    'Se pueden adjuntar ficheros 
    '.Attachments.Add ("C:\Mi_Fichero.pdf") 
    .Display 'tambien se puede usar .Send y lo situa en la bandeja de salida 
End With 
Set OutMail = Nothing 
Set OutApp = Nothing 

末次

當我打電話給第一個它正常工作,它加載正確的過程。我顯示代碼:

Select Case operador 

    Case Is = "ORANGE" 

    'Alta de línea ORANGE 

     If fam = "XX-YYYY" Or fam = "ZZ-WWWW" Then 

      Call altaorange 

     End if 

    End Select 

但是,如果我用這個:

Case Is = "ORANGE" 

     'Baja de línea ORANGE 

     If fam = "XX-YYYY" Or fam = "ZZ-WWWW" And baja ="PPPPP" Or baja ="DDDDD" Then 

      Call bajaorange 

     End If 
End Select 

加載的第一個程序(altaorange)。

我不知道它不會加載bajaorange過程。

+1

沒有看到所有的上下文中的代碼的重要性的例子,我可以說,以「bajaorange」通話不應該叫「altaorange」 。爲了嘗試和解決,我建議你在代碼中給每個'altaorange'被調用的地方放置一個斷點。也許你有一個你沒有意識到的參考。 –

+0

如果同時有兩個Select Case語句,並且fam變量滿足第一個條件,它將調用altaorange。如果您只有第二個案例陳述,那麼我會說您需要仔細查看您的情況,並且可能會在fam選項以及baja選項中加入一對括號。 '如果(fam =「XX-YYYY」或fam =「ZZ-WWWW」)並且(baja =「PPPPP」或baja =「DDDDD」)然後'但是沒有看到完整的代碼,很難準確地知道你的位置出錯了... – Dave

+0

Wayne是對的,你的最後一段代碼不可能調用'altaorange'。如果真的發生這種情況,那麼您在其他地方還沒有向我們展示關鍵代碼。 – Leviathan

回答

0

Select Case將停止在第一場比賽,都是Case Is = "ORANGE",它只會永遠做到第一個。

由於fam有在這兩種情況XX-YYYYZZ-WWWW相同的比賽,當你放入第一operador比賽"ORANGE"然後繼續運行altaorange

考慮baja是決定性變量。我也用下面的代碼片段顯示的包圍If ... Or/And ... Then聲明

If (operador = "ORANGE") and ((fam = "XX-YYYY") Or (fam = "ZZ-WWWW")) then 
    If (baja ="PPPPP") Or (baja ="DDDDD") then 
     Call bajaorange 
    Else 
     Call altaorange 
    End If 
End If 
+0

你好加里, 我應用了這個,我錯了,因爲「baja」字段是空的。我使用和例外,但它沒有工作。我怎樣才能跳過這個錯誤? –

+0

聲明'baja'爲一個字符串('Dim baja As string'),它應該可以工作... –

+0

@Firefox_mig如果這有助於您,我們將非常感謝您將問題標記爲已回答 –

相關問題