나는 통합 문서에 이름이 항목에서 범위를 읽으려고하지만 오류가 점점 : 생성 된 모든 이름 범위의생성 된 이름 범위가 명명 된 항목 범위를 가져올 수없는 이유는 무엇입니까?
This operation is not permitted for the current object.
먼저 (객체 이름을 add()
방법을 사용하여).
Excel.run(function (ctx) {
var sheet = ctx.workbook.names.add("MyRange", "Sheet1!A1B2");
return ctx.sync().then(function() {
console.log("range name added");
}).catch(function (e) {
console.log("Error Message is -> " + e.message);
})
});
지금까지 코드는 아주 잘 작동합니다. 이제 기존 명명 된 범위의 범위를 읽고 싶습니다. 그래서 내 코드를 약간 변경했습니다 :
Excel.run(function (ctx) {
var sheet = ctx.workbook.names.add("MyRange", "Sheet1!A1B2");
return ctx.sync().then(function() {
console.log("range name added");
var range = ctx.workbook.names.getItem("MyRange").getRange();
range.load("address");
return ctx.sync().then(function() {
console.log(range.address);
});
});
}).catch(function (e) {
console.log("Error Message is -> " + e.message);
});
이 코드를 실행하려고하면 위의 오류가 발생합니다. Office.js API에서 언급 한 것과 같은 방법을 사용했습니다.
감사합니다. 김씨는 지금 일했습니다. 하지만 범위에 직접 이름을 추가하는 대신 범위 문자열에 이름을 추가하기 때문에 코드가 내 코드와 어떻게 다른지 설명해 주시겠습니까? 제발 설명해 줄 수 있니? –
Range에 대해 명명 된 항목을 만들려면 NameItemCollection.add (...) 메서드를 호출 할 때 두 번째 매개 변수로 ** Range 개체 **를 지정해야합니다. Range 개체 대신 문자열을 지정하면 Office JS은 해당 문자열을 Range 개체로 해석하지 않으므로 이후에 해당 명명 된 항목에 대해'getRange()'메서드를 호출하면 오류가 발생합니다. (왜냐하면'getRange()'메소드는 문자열에 유효하지 않기 때문이다.) –