나는 이것이 작동하도록 전체 코드를 다시 작성하기 위해 상상할 수있는 모든 스레드를 읽는 데 최선을 다했습니다.Excel VBA - 데이터를 복사하지 않는 VLookup
상황 : 데이터가 시트 2 (점수)이고 데이터가 시트 3 (의견)입니다. 각 시트에는 열 A에 티켓 번호가 있습니다. 점수 시트는 가능한 모든 티켓 번호를 포함합니다. 코멘트 시트에는 그 합계의 부분 집합 만 포함됩니다 (약 50 %). 점수 시트에는 4 개의 채워진 열이 포함되어 있으며 의견 시트에는 2가 있습니다. 기존의 일반적인 행 (티켓 번호)과 일치하는 조회가 필요하며 주석 열 B (2)의 값을 가져 와서 열 E (5)에 붙여 넣습니다. 는 CSAT 요약 시트 인 sheet1의 시트이며 점수 시트의 Col AD 내용을 포함합니다.
아래는 현재 코드입니다. 나는 VLOOKUP을 제거하고 단지 (예 : "A"와 같은) 변수를 넣어 경우, 그것은 확실히 내가 놓친 거지하지 무엇을
scores.UsedRange.Columns.Copy
csatSum.Range("A1").Insert
csatSum.Activate
Set rng = csatSum.Range("A2:A" & lastRow)
rngLastRow = Comments.Range("B2:B" & lastRow)
For i = 2 To lastRow
On Error Resume Next
csatSum.Cells(i, 5) = WorksheetFunction.VLookup(rng, Comments.Range(rngLastRow), 2, False)
On Error GoTo 0
Next i
... 모든 한 줄에 불구하고, 올바른 열 페이스트 A를 않습니다. 분명히 VLookup 자체에있는 것이 분명합니다. 그러나 나는 손실에 처해있다.
VLOOKUP의 첫 번째 인수는 단일 값이어야한다. 아마'csatSum.Cells (i, 1)'입니다. –
나는 그것이'rngLastRow = Comments.Range ("B1 : B"& lastRow)'이어야한다고 생각한다. VLookup의 두 번째 매개 변수는 찾아보기 테이블이어야합니다. –
'rngLastRow = Comments.Range ("B2 : B"& lastRow)'는 배열을 반환 할 것이므로'Comments.Range (rngLastRow)'는 작동하지 않습니다. 범위로 설정 한 다음 호출해야합니다. –