VBA Do Until Loop, 수식 범위 이동


-1

폴더의 모든 파일을 통해 루프를 실행하려고 하는데이 파일을 사용하여 20x2 셀 (예 : N1 : O20)을 채우는 수식을 실행하고 찾은 값을 유지하고 다음 값을 추가하려고합니다 이전 반복의 맨 아래

여기 내가 작업하고있는 코드가 있습니다 .A1 : K36004는 .dat 파일이 정보를 표시하는 위치입니다.

Len (strFile)> 0 '여기에 Clearcontents를 추가하면 다음 반복에서 수식 값이 지워집니다.

With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
     .TextFileParseType = xlDelimited
     .TextFileCommaDelimiter = True
     .Refresh
End With
'End Extraction
' Filter_Minute Macro

이 값을 위치에 저장하고 다음 반복을 다음 빈 행으로 이동해야합니다.

Range("N5").Select
Range("N5").Formula = "=INDEX($A$5:$A$36004,(ROW(N5)-5)*1200+1,1)"
    Selection.AutoFill Destination:=Range("N5:N34"), Type:=xlFillDefault
    Range("N5:N34").Select
    Range("N5:N34").Select
Range("O5").Select
Range("O5").Formula = "=MAX(INDEX($J$3:$J$36004,(ROW(H3)-3)*1200+1,1):INDEX($J$3:$J$36004,(ROW(H4)-3)*1200,1))"
    Selection.AutoFill Destination:=Range("O5:O34"), Type:=xlFillDefault
    Range("O5:O34").Select
    Range("O5:O34").Select

strFile = Dir

고리

https://i.stack.imgur.com/uo3Wa.png

이 그림은 이전의 전체 카운트가 이동 된 다음 반복에서 발생하는 상황을 보여줍니다.

시간 내 줘서 고마워.

답변:


0

나는 당신이 요구하는 것을 완전히 따르지는 않지만 (의문의 여지가 없지만) 고정 된 대상 범위 (N1 : O20)를 기계적으로 추적하는 간단한 경우입니다.

  • x는 (1) 범위의 첫 번째 행입니다.
  • 행 수 (numRows)는 상수입니다 (20).
  • VBA 수식의 대상 범위는 "Nx : Ox + numRows-1"형식의 문자열 값 (theRange)입니다.
  • 루프가 시작되기 전에 첫 x 값이 할당됩니다
  • 모든 반복에 대해 : theRange = "N"& str (x) & ": O"& str (x + numRows-1); { range.(theRange)따옴표없이 범위를 참조 }; x = x + numRows; 루프 끝

처음부터 : theRange = "N1 : O20". 두 번째 : theRange = "N21 : O40"

의미있는 변수 이름을 사용하십시오.

따라서 기본적으로 관심있는 정보의 "프레임 끝점"을 추적 한 다음 프레임을 이동합니다. 프레임의 크기가 가변적 인 경우 끝점을 지정하는 방법을 해결하려면 훨씬 더 많은 논리가 필요합니다. 예제 텍스트에서 시작 행은 1이되고 그림에서 시작 행은 5가됩니다.

동일한 루프에서 필요한 다른 변수 범위에 대해서도 비슷한 구성표를 사용하십시오.


고마워요, 질문은 없었지만 당신은 내가 욕하는 것에 달려 있습니다. 나는 이것을 시도 할 것이다.
Workinatwork 2019
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.