2013-08-19 4 views
0

Jscript를 사용하여 Excel로 데이터를 입력하기위한 기본 스크립트를 작성 중이며 이상한 오류가있는로드 블록을 실행했습니다 (반환 된 오류는별로 이상하지 않습니다. 그것을 고정하는 방법).Cscript를 통한 JavaScript 런타임 오류 - Odd 예상 ';'

기본적으로 셀을 검사하여 워크 시트의 마지막 빈 행을 찾습니다. (i, 8). 값이 빈 연속 두 행이 있는지 확인하고 해당 인덱스를 유지하기 위해 루프를 끊습니다. 데이터 입력을 수행합니다.

while(!data.AtEndOfStream)//Looping to find the data for the the five digit code found above. 
{ 
var ts = new String(data.ReadLine()); 
var t=ts.split(","); 
    if(search==t[0]) 
    { 
    var i; 
     for(i=0; i<wks.UsedRange.Rows.Count; i++) 
     { 
      if(wks.Cells(i,11).Value==null) 
      { 
      WScript.StdOut.Writeline("empty at "+i); 
      break; 
      } 
     } 
    //Data entry statements etc... 
    } 
} 

cmd를 통해 컴파일 할 때 다음과 같은 메시지가 나타납니다. Microsoft JScript 런타임 오류 : ';' 반환되는 행은 if (wks.Cells) 행, char 4에 있습니다.이 부분이 나쁜 프로그래밍인지 또는 완전히 간과되어 있는지 확실하지 않습니다 ...

답변

2

저는 아닙니다. JScript에 대해 완전히 확신하지만 셀이 기본 1이기 때문에 Cells(0,11)이 작동하지 않아야한다는 것을 알고 있습니다 (Excel에는 행 0이 없음). 그래서, 경우에 코드를 변경해보십시오 :

for(i=1; i<wks.UsedRange.Rows.Count; i++)

나는 그것이 작동합니다 생각합니다. 나는 틀릴 수도 있지만, 그럴 가치가있어.

+0

완벽한, 여기는 루프에 대한 전통적인 2 차원 배열의 관점에서 Excel을 생각하고 있었고, 0,0이 아니라 1,1에서 시작한다는 것을 잊어 버렸습니다. Jscript가 아닌 Excel에서 더 나쁜 부분으로 이동했습니다. . 고맙습니다! – Cshell

+1

@Cshell은 쉽게 볼 수있어서 기쁩니다! :) 그것들은 항상 안심입니다. –

관련 문제