2013-02-20 2 views
0

도움을 요청하고 싶습니다. 나는 그런 행동을 할 매크로를 찾고있다.다른 열에 따라 특정 열의 값을 채우는 매크로

나는 Comment 열과 Comment 열에 따라 채워 져야하는 5 개의 다른 열을 가지고있다. Comment 열에 "duplicate"라는 메시지가 있습니다. 중복되지 않았 으면 1이라는 열에 표시하고 싶습니다. 0이어야합니다.이 경우에도 두 값이 1로 채워지는 것을 나타낼 수 있습니다. 즉, Left-Replacement Found 왼쪽 - 교체 없음. 그 두 값에 대해서는 다른 열의 경우 왼쪽 열에 1을 채워야합니다.

내가 Vlookup에 대해 가지고있는 매크로를 수정했고 기능면에서는 1 개만 얻을 수있었습니다 (이 예제에서는). "왼쪽 - 교체를 찾았습니다.) 1 개 이상의 논리적 테스트가 필요합니다.이 경우, 왼쪽 대체 교체가 있고 왼쪽 교체가 1로 표시되고 나머지는 0으로 표시하고 나머지는 0으로 지정하고 싶습니다.

Sub Testing_if_function() 
Dim FormulaCol As Long 
Dim LookupCol As Long 
Dim TotalRows As Long 
Dim TotalCols As Long 
Dim i As Long 

Sheets("Data").Select 
TotalRows = ActiveSheet.UsedRange.Rows.Count 
TotalCols = ActiveSheet.UsedRange.Columns.Count 

For i = 1 To TotalCols 
    If Cells(1, i).Value = "Test" Then FormulaCol = i 
    If Cells(1, i).Value = "Comment" Then LookupCol = i 
Next 

ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""Left - Replacement Found"",1,0)" 
Cells(2, FormulaCol).AutoFill Destination:=Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol)) 
With Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol)) 
    .Value = .Value 
End With 

End Sub 
+2

[무엇을 시도 했습니까?] – SeanC

+1

VBA에 대해 배울 좋은 기회입니다. 또는 워크 시트 수식을 사용하여이 작업을 수행 할 수 있습니다. 워크 시트 수식에 익숙하지 않고 VBA에 대한 지식이 없거나 제한적인 사람에게는이 방법이 더 나은 조치입니다. –

+0

이런 일들을 위해 나는 이것을 수동으로하지만 매일 데이터 정리의 모든 단계가 오래 걸리는 스프레드 시트를받습니다. 나는이 과정을 완전히 자동화하고 VBA 학습에 집중할 필요가있는 거의 모든 것을 스택 오버플로 (overflow) 사람들이 도와주었습니다. 내가 IF 함수로 시작해야하지만 매크로에서 이것을 설정하는 것은 나에게 너무 복잡해 보입니다. – mgunia

답변

0

이 문제의 해결책을 찾았습니다. 비슷한 매크로가 필요하면 다음 코드를 입력하십시오.

Sub Testing_if_function() 
Dim FormulaCol As Long 
Dim LookupCol As Long 
Dim TotalRows As Long 
Dim TotalCols As Long 
Dim i As Long 

Sheets("Data").Select 
TotalRows = ActiveSheet.UsedRange.Rows.Count 
TotalCols = ActiveSheet.UsedRange.Columns.Count 

For i = 1 To TotalCols 
    If Cells(1, i).Value = "Test" Then FormulaCol = i 
    If Cells(1, i).Value = "Comment" Then LookupCol = i 
Next 

ActiveCell.FormulaR1C1 = "=IF(RC[-2]=""Left - Replacement Found"", 1, IF(RC[-2]=""Left - No Replacement"", 1, 0))" 
Cells(2, FormulaCol).AutoFill Destination:=Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol)) 
With Range(Cells(2, FormulaCol), Cells(TotalRows, FormulaCol)) 
    .Value = .Value 
End With 

End Sub 
관련 문제