2014-03-26 1 views
1

몇 백 개의 파일이있는 Excel 스프레드 시트가 있습니다. 각 파일에는 여러 이미지가 있습니다. "부모"파일 행 아래에 새 행이 삽입되도록 각 이미지가 필요합니다. 나는 정확한 수의 행을 삽입 할 코드를 가지고 있지만 다음 셀로 이동하지는 않을 것이고 오프셋의 변경 사항 중 아무 것도 그것을 고치고있다.참조 셀에 의해 결정된 행 수를 추가하는 방법

Sub CB3262014() 
Dim i As Integer, n As Integer, m As Long, currentCell As Range 
Set currentCell = ActiveCell 
Do While Not IsEmpty(currentCell) 
n = currentCell.Value 
m = currentCell.Row 
If n > 0 Then 
Rows(m + 1 & ":" & m + n).Insert 
Set currentCell = currentCell.Offset(n + 1, 0) 
Else 
Set currentCell = currentCell.Offset(1, 0) 
End If 
Loop 
End Sub 

나는 매번 두 줄 건너 뛰기/건너 뛰기를하는 방법에 어려움을 겪고 있습니다. 데이터 세트가 설정되는 방식에는 두 개의 행이 있습니다. 그 다음 상위 파일이있는 행과 추가 할 행을 추가 할 행의 참조 번호가 있습니다.

다음은 스프레드 시트의 샘플이며 어떻게 사용하고 싶습니다. 나는 파일 이름을 채울 것이고, 나는 그 파일들을 거기에 놓아서 무엇이 일어나고 있는지 쉽게 볼 수있다.

현재 스프레드 [1] : http://i.stack.imgur.com/zRdXE.png

목표 스프레드 [2] 첨부 된 이미지의 검사 http://i.stack.imgur.com/6evMO.png

+0

당신이 부분을 설명 할 수 : 사소한 성능 향상 등으로 각 루프를 평가 저장하는 셀을 캐시하는 것 상위 파일 및 추가 할 추가 행 수에 대한 참조 번호가 표시됩니다. - 어쩌면 데이터가 어떻게 보이는지에 대한 질문을 업데이트 할 수 있으므로 찾고있는 최종 솔루션을 제공 할 수 있습니다 .... –

+0

각 루프가 끝날 때 n을 0으로 재설정하지 않습니다 –

+0

싼 방법을 피하십시오 currentcell.offset (-1,0)에 행을 삽입하기 전에 currentcell을 오프셋 (1,0)으로 설정하는 것이 문제입니다. D –

답변

0

는,이 루프의 공백 행을 반복되는 것 루프 따라서 즉시 멈춘다. 로 인해 첫 번째 빈을 발생에 : 그래서

Do While Not IsEmpty(currentCell)

, Do Until currentCell is Range("C100000").End(xlUp)와 그 대체 루프는 expecte 계속해야한다 디. 에 다음 행 - 두 행있다, "내 데이터 세트를 설정하는 방법 :

Dim lastCell As Range 
Set lastCell = Range("C100000").End(xlUp) 
Do Until currentCell is lastCell 
...etc 
Loop 
관련 문제