나는이 질문을 전에 저에게 물었습니다.하지만 대답을 찾은 것 같아서 이제는 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)
당신이 더 코드 경우'EmailApprovalP1' 루틴의 추가 할 수 있습니다 : 아래
일했다 코드입니다. 당신이 너무 많은'객체들 '을 지나가고 있다는 것이 이상하게 보입니다. 그들은 진정으로'객체 '입니까? 아니면 어떻게 이름을 지었을까요? 그들은 다른 것, 어쩌면'레인지 (Ranges)'처럼 보입니다 ...? –범위가 개체입니다. :) OP는 매크로가 일부 컴퓨터에서는 작동하고 다른 컴퓨터에서는 작동하지 않는다고 말했습니다. – Jeanno