2015-01-30 1 views
0

나는이 질문을 전에 저에게 물었습니다.하지만 대답을 찾은 것 같아서 이제는 Excel이 계속 응답하지 않습니다. 내 문제는 일부 컴퓨터에서는 프로그램이 제대로 실행되지만 다른 프로그램에서는 폭탄이 나오는 점입니다.Excel VBA : Outlook 전자 메일 작성 서브 루틴에서 작업 중지

배경 : 사용자가 엑셀 형태로 채우고 클릭 제출 후 이 프로그램이 실행됩니다. 프로그램은 데이터의 유효성을 검사하고 데이터를 조작하며 Outlook을 통해 전자 메일을 만들고 마지막으로 문서를 저장하고 닫습니다.

프로그램은 많은 직장 동료의 컴퓨터에서 작동합니다. 우리 모두는 Windows 7, Office 2013에서 실행되지만 우리 중 일부는 다른 랩톱 (HP, Dell 등)을 사용합니다.

여기에는 응답이 시작되지 않는 코드 줄인 서브 루틴 호출이 있습니다

Public Sub EmailApprovalP1(ByRef GeneralSection As Object, ByRef ItemSection As Object, ByRef VendorSection As Object, ByRef MarketSection As Object, ByRef Part1Section As Object, ByRef wbLog As Workbook, ByRef wbPCD As Workbook, ByRef resubmission As Boolean) 

'Declare In Memory 
Dim i As Integer 
Dim toEmail As String 
Dim subject As String 
Dim body As String 
Dim OL As New Outlook.Application 
Dim olMail As Outlook.MailItem 
Set olMail = OL.CreateItem(olMailItem)  

내가 다음 F8, 엑셀 정지를 눌러 Call EmailApprovalP1()에 코드를 중지하는 경우 : 여기

Call EmailApprovalP1(GeneralSection, ItemSection, VendorSection, MarketSection, Part1Section, wbLog, wbPCD, resubmission) 

이 서브 루틴의 시작이 호출되고 : - '참고로,이 하지 디버깅 정류장 응답. 누구든지이 문제를 일으킬 수있는 아이디어가 있습니까?

는 사용 CreateObject 대신 New 모든 컴퓨터

Dim OL As Object 
Set OL = CreateObject("Outlook.Application") 
Dim olMail As Object 
Set olMail = OL.CreateItem(olMailItem) 
+1

당신이 더 코드 경우'EmailApprovalP1' 루틴의 추가 할 수 있습니다 : 아래

일했다 코드입니다. 당신이 너무 많은'객체들 '을 지나가고 있다는 것이 이상하게 보입니다. 그들은 진정으로'객체 '입니까? 아니면 어떻게 이름을 지었을까요? 그들은 다른 것, 어쩌면'레인지 (Ranges)'처럼 보입니다 ...? –

+0

범위가 개체입니다. :) OP는 매크로가 일부 컴퓨터에서는 작동하고 다른 컴퓨터에서는 작동하지 않는다고 말했습니다. – Jeanno

답변

0

대신이라는 메시지가 나타납니다. 올바른 방향으로 나를 가르쳐 주셔서 감사합니다. @Eugene & @ 제노!

Dim OL As Object 
Set OL = CreateObject("Outlook.Application") 
Dim olMail As Object 
Set olMail = OL.CreateItem(olMailItem) 
1

에 근무 2-3-15

코드를 업데이트했습니다. New은 불안정성 문제를 일으키는 것으로 알려져 있습니다.

Dim OL As Outlook.Application 
Set OL = CreateObject("Outlook.Application") 
1

우선 코드를 실행하기 전에 Outlook에 대한 참조를 추가했는지 확인하십시오. 코드를 실행해야하는 각 PC에서이 작업을 수행해야합니다. How to automate Outlook from another program 문서는 다른 응용 프로그램에서 Outlook을 자동화하는 데 필요한 모든 단계를 설명합니다.

도움이되지 않는 경우 기능을 단계적으로 (F8) 시도하고 문제를 일으키는 정확한 코드 줄을 찾으십시오.