2012-10-19 3 views
0

첫 번째 매크로를 작성하고 특정 열의 값을 기반으로 특정 행을 선택하는 방법에 대한 질문이 있습니다.Excel 매크로 : 열 날짜를 기준으로 특정 행 선택

Sub Pipeline() 

'Module 3 
'Iterating through the Funding Date Column and looking for clients going live within 30 days 
'Selecting the rows for each client in that target range 
'TODO: Export information into an email template in Outlook 
'TODO: Send email to distribution list 


Dim fundingDate As range 
Set fundingDate = range("M4:M500") 

Dim todaysDate As Date 
todaysDate = Date 

For Each cell In fundingDate 
    If cell < todaysDate + 30 Then 
    'Need to select the entire row 
    Else 
    cell.Font.ColorIndex = 3 
End If 
Next 

End Sub 
+0

이것이 첫 번째 매크로라고 말했기 때문에, 여기에 힌트가 있습니다 : 항상'Option Explicit'을 사용하십시오 (이것을 모듈의 첫 번째 줄로 넣으십시오). 이렇게하면 변수를 _all_ 선언 할 수 있습니다. –

답변

3

여기

cell.entirerow.select

UPDATE 당신은 모든 루프없이 필요한 것을 얻을 수있는 훨씬 더 효율적인 방법입니다 함께 'Need to select the entire row 교체 : 여기에 지금까지 내 코드입니다. 코드에서

이 함께 NextFor Each cell ...에서 교체 :

With fundingDate  
    .AutoFilter 1, "<" & todaysDate + 30   
    .SpecialCells(xlCellTypeVisible).Select 
    'here are your clients going live in next 30 days  
    .AutoFilterMode = False  
End With 

당신은 당신이 SpecialCells 방법이 실패합니다 (30 일 이내에 실시간 스트리밍 클라이언트가없는 경우 확인 몇 가지 오류를 제공해야 할 수도 있습니다) 또한 M4가 열 머리글이 아닌 경우 범위에서 보이는 셀을 선택하는 방법을 조정할 수 있습니다.

+0

안녕하세요. Scott, .AutoFilter는 어떻게 작동합니까? 도트 표기법을 사용하여 객체의 메서드를 호출해야한다고 생각했습니다. 또한 위의 코드를 복사하여 붙여 넣을 때 .AutoFilterMode = False로 인해 오류가 발생합니다. "런타임 오류 438, Object doesnt는이 속성 또는 메서드를 지원하지 않습니다." – BC00

+0

또한 시트를 원하는대로 지정하는 방법은 무엇입니까? 하나의 행만 표시합니다 (그룹화 된 행의 경우)? 감사! – BC00

+0

@ BC00 -> 나는 지금 문을 다 써 버렸지 만 질문에 도움을주기 위해 : .AutoFilter는 어떻게 작동합니까? - 엑셀의 도움말을 참조하십시오. 또는 주어진 범위에서 수동으로 Filter 메서드를 사용하여 필터 메서드가 어떻게 작동하는지 확인할 수 있습니다. '. notation' -> 이것은 객체에 대한 메소드를 호출합니다. 'fundingDate' 범위 객체에 대해'AutoFilter' 메쏘드를 호출하고 있습니다. 단지 With 문을 사용하여 코드를 읽기 쉽고보다 효율적으로 만듭니다. 'RunTime Error' -> 날짜별로 필터링 할 수있는 유효한 범위를 선택했는지 확인하십시오. 거기서 재미있게 놀아 라! –

관련 문제