이 매크로는 Windows 7의 Excel 2010에서 작성 및 테스트되었으며 다른 Windows 7 컴퓨터에서도 Excel 2007과 함께 테스트되었습니다. 내 작업 컴퓨터 (Windows 7, Excel 2007)에서 사용하십시오. 첫 번째 "다음"문에서 "형식 불일치 오류"가 나타납니다. 내가 찾은 다음 "다음"대신 "Exit For"를 사용할 수 있지만 "End If"가 포함 된 다음 줄에 대해 불만을 표시합니다. 이제는 "End If if Block if"라고 주장합니다. 나는 이것이 어떻게 하나의 Win7 \ Excel 2007 컴퓨터에서 작동했는지에 대해서는 이해할 수 없다.Excel vba 매크로는 2007 년에 형식 불일치 오류가 발생하지만 2010 년에 작동합니다.
매크로는 전자 메일 제목에서 선택한 셀의 값을 검색하기 만합니다 (셀이 아직 채색되어 있지 않은 경우). 일치하는 항목이 있으면 셀의 색이 변경됩니다.
Sub MultipleCellSubjectSearch()
'This macro searches for the selected cell values (if there is no cell color), when it finds a match it turns the cell color yellow
Dim olApp As Outlook.Application
Dim olNamespace As Outlook.Namespace
Dim olItem As MailItem
Dim olInbox As Outlook.MAPIFolder
Dim olFolder As Outlook.MAPIFolder
Dim oCell As Range
'The following sets the Outlook folder to search
Set olApp = New Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
Set olInbox = olNamespace.GetDefaultFolder(olFolderInbox)
'The following searches for cell value string in subject
For Each oCell In Selection
If oCell.Interior.Pattern = xlNone Then
For Each olItem In olInbox.Items
If InStr(olItem.Subject, (oCell.Value)) <> 0 Then
oCell.Interior.ColorIndex = 6
End If
Next
End If
Next
Set olInbox = Nothing
Set olNamespace = Nothing
Set olApp = Nothing
End Sub
누구나 아이디어가 있다면 크게 환영 할 것입니다.
두 컴퓨터에서 다른 버전의 Outlook을 사용하고 있습니까? 올바른 참조를 포함하고 있습니까? 이것은 Excel의 차이보다 더 "환경적인"문제입니다. – Floris
그건 그렇고 ... 'Exit For'는 일찍 루프를 빠져 나가는 좋은 방법입니다.하지만 여전히 "규칙적인"끝내기. 따라서 '다음을'을 'Exit For'로 바꾸는 경우는 아니지만 더 많은 것을 위해 : '물건을 위해 ... 뭔가가 끝나면 ... 더 많은 것을해라.'다음은 의미가있다. ? – Floris
Excel 2007 컴퓨터는 모두 Windows 7 Pro에서 Outlook 2007을 실행합니다. 두 가지 모두에 동일한 참조가 포함되어 있습니다. 더 자세히 설명 하겠지만 내 "회사"컴퓨터에서이 작업을 수행 할 수있는 방법을 찾아야합니다. – user2074189