사용자 지정 함수 사용 시 "이름이 확인되지 않음" 오류안녕하세요,
JMP 스크립트 내에서 사용자 지정 함수를 정의하고 사용하려고 합니다. 실행이 잘 될까요? 현재 함수(JSload)를 호출하는 라인에 도달하면 로그에 다음 오류가 표시됩니다.
이름 미해결: JSload 액세스 또는 'JSload' 평가, JSload( temp ) /*###*/
함수에 문자열 "temp"(xlsx 파일에 대한 적절한 경로가 있는 파일 이름)를 전달하고 Open 명령을 사용하여 해당 파일의 내용을 데이터 테이블로 가져오려고 합니다. 나는 그것이 함수에 대한 초기 호출에서 잡히고 있다고 생각합니다. 다음은 현재 스크립트 및 기능 기능입니다. 변수 "temp"가 올바르게 만들어진 것으로 보입니다(로그 파일에서 확인됨).
열기 명령에 대한 코드는 초기 데이터 가져오기를 수동으로 수행한 후 "스크립트 저장"에서 가져옵니다.
감사해요,
조
================================================
For( 인덱스1 = 1, 인덱스1 <= 1, 인덱스1++,
임시 = (파일 경로||파일 목록[인덱스1]);
JSload(임시);
);
JSload = 함수({임시},
열려 있는(
온도,
워크시트( "시트1" ),
모든 시트에 사용( 1 ),
워크시트 연결( 0 ),
연결 열 생성( 0 ),
워크시트 설정(
1,
열 헤더( 1 ) 있음,
헤더의 행 수( 1 ),
헤더 시작 행( 1 ),
데이터는 행( 2 )에서 시작합니다.
데이터 시작 열( 1 ),
데이터는 행( 0 )에서 끝납니다.
데이터는 열( 0 )에서 끝납니다.
복제된 스팬 행( 1 ),
숨겨진 행 억제( 1 ),
숨겨진 열 억제( 1 ),
빈 열 억제( 1 ),
계층 구조로 취급( 0 )
);
);
Re: 사용자 정의 함수 이름 미해결 오류<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />감사합니다 에릭. 그것이 비결이었습니다!
조
Re: 사용자 정의 함수 이름 미해결 오류안녕, 조
실제로 "temp" 변수를 재사용하는 것은 문제가 아니라고 생각합니다. 왜냐하면 JMP는 "JSload"가 찾을 수 없는 것이라고 말하고 있기 때문입니다.문제는 당신의 함수가 당신이 그것을 호출한 *후에* 정의된다는 것입니다.JMP에서는 함수를 호출하기 전에 함수를 정의해야 합니다."JSload = function({temp},...)" 섹션을 for 루프 앞으로 옮기면 제대로 작동할 것 같습니다.
또한 함수 정의 끝에 닫는 괄호와 세미콜론이 없는 것 같습니다.
이 버전은 나를 위해 작동합니다:
파일 경로 = "c:\사용자\공개\임시\" ;
파일목록 = { "myTest.xlsx" };
JS로드 = 기능 ({임시},
열려 있는 (
온도,
워크시트( "시트1" ),
모든 시트에 사용( 1 ),
워크시트 연결( 0 ),
연결 열 만들기( 0 ),
워크시트 설정(
1 ,
열 머리글 있음( 1 ),
헤더의 행 수( 1 ),
헤더는 행에서 시작( 1 ),
데이터가 행에서 시작( 2 ),
데이터는 열에서 시작( 1 ),
데이터가 행에서 끝남( 0 ),
데이터가 열에서 끝남( 0 ),
복제된 스팬 행( 1 ),
숨겨진 행 억제( 1 ),
숨겨진 열 억제( 1 ),
빈 열 억제( 1 ),
계층 구조로 취급( 0 )
);
);
);
을 위한 (인덱스1 = 1 ,인덱스1 <= 1 , 인덱스1++,
임시 = (파일 경로||파일 목록[인덱스1]);
JSload(임시);
);
HTH,
에릭
Re: 사용자 정의 함수 이름 미해결 오류안녕 조,
문제는 파일 경로와 함수 정의의 인수에 "임시" 변수 이름을 사용하고 있다는 것입니다. 함수 명령문에서 "temp"의 두 인스턴스를 사용하지 않는 다른 변수 이름으로 바꾸면 스크립트가 작동해야 합니다.
-실내 변기