2014-03-13 2 views
1

a previous posting 특정 키 프레이즈로 시작하여 다음 셀이 비어있을 때 끝나는 셀 범위 강조 표시 방법에 대해 질문했습니다. 여러 Excel 파일에서이 작업을 수행하는 루프를 만드는 방법을 더 잘 이해하고 싶습니다. 어떤 도움이라도 대단히 감사 할 것입니다. 다음과 같이 참고로, 내가 언급하고있는 코드는 다음과 같습니다 하나는 현재 통합 문서에 이미 존재하지 않는 경우 또한해당 가치와 함께 많은 통합 문서에서 특정 키워드 찾기 및 하나의 통합 문서의 열에 배치

Dim wk As Worksheet 
Set wk = ActiveSheet 

FirstRowColA = Application.WorksheetFunction.Match("keyphrase", wk.[A:A]) 
LastRowColA = Cells(wk.Rows.Count, "A").End(xlUp).Row 

wk.Range("A" & FirstRowColA & ":A" & LastRowColA).Copy 

Worksheets("Sheet2").Paste 

는, 나는 "시트 2"를 만들어 처리하는 방법에 대한 호기심이었다. Set WS = Sheets.Add와 같은 것을 사용해야하고 Excel에서 Worksheets (Sheets.Add) .Paste를보아야합니까?

나는 또한이 코드가 필자가 찾고자하는 것을 반드시 찾지는 못한다는 것을 알았지 만, 이것이 해결해야 할 문제이다. 예를 들어, Match() 함수에 "Name"구를 넣으면 다른 단어가 들어있는 A 열에있는 셀의 텍스트가 반환됩니다.

답변

0

하자 유는 어떤 폴더

이 코드는 폴더에 각 통합 문서를 열고 .copy 발견하고 필요한 데이터를 붙여 넣을 경우 특정 문자열을 검색에서 엑셀 파일을 말한다.

Sub LoopThroughFiles() 
    Dim StrFile As String 
    Dim wk As Worksheet 
    StrFile = Dir("C:\Personal\Excel Report\*.xlsx") 
    Do While Len(StrFile) > 0 
     Workbooks.Open ("C:\Personal\Excel Report\" & StrFile) 
     Set wk = ActiveSheet 


     Set firstrowcola = activesheet.Range("A:A").Find("taskname") ' - search taskname in 1st row 

     If firstrowcola Is Nothing Then GoTo here: 

     LastRowColA = Cells(wk.Rows.Count, "A").End(xlUp).Row 
     wk.Range(firstrowcola.address & ":" & firstrowcola.offset(lastrowcola,0).address)).Copy 
     Set ws = Sheets.Add 
     ws.Range("A1").Select 
     ActiveSheet.Paste 
here: 

     ActiveWorkbook.Close True 
    Loop 
End Sub 
+0

감사합니다. 내가 먼저 해결하려고하는 한 가지 간단한 질문은 "Match()"함수에 대해 무엇을 넣든 관계없이 Sheet 2의 첫 번째 셀로 반환되는 값이 Column A의 마지막 값이라는 이유입니다. 원래 코드에서 일어난 일은 일치 된 셀을 강조 표시하고 옆에있는 셀을 붙여 넣는 것입니다. – 114

+0

만약 내가 틀렸다면 나에게 맞춰라 .. 당신은 1 번째 헤더를 찾는다. 발견 된 칼럼의 끝에 A1에서 값을 복사해야한다. 내가 맞습니까? (내 언어에 대해 미안하다 영어로 부족하다 :() –

+0

혼란을 야기하는 코드가 아닌 것 같습니다. 정확하게 그 코드가 현재하고있는 코드라고 생각합니다. 헤더가있는 셀에서 다음 공백으로 복사합니다 (또는 다음에 공백이 두 번 나타날 때마다 사용하는 것이 이상적입니다). – 114

관련 문제