홈>
따라서 저는 절대로 JavaScript를 프로그래밍 한 적이 없으며 Google Script를 사용 해본 적이 없습니다. Excel과 Word의 Visual Basic과 매크로에 대해 상당히 잘 알고 있습니다. 상당히 기본적인 프로그램 만들기 : 스프레드 시트의 변수 목록을 훑어보고 각 값에 대해 새 시트를 만들고이 새 시트에 셀을 삽입하십시오 (1,1).
디버그는 문제없이 프로그램을 받아들입니다. 그러나 프로그램을 실행할 때 아무 일도 일어나지 않습니다 :
function kraft() {
var rightHere =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A1:A131");
var loopy;
var goshDarn = "";
for (loopy = 1; loopy < 132; loopy++) {
celly = rightHere.getCell(loopy,1);
vaerdi = celly.getValue();
fed = celly.getTextStyle();
console.log(vaerdi & " - " & fed);
if (vaerdi != "" && fed.isBold == false) {
SpreadsheetApp.getActiveSpreadsheet().insertSheet(vaerdi);
var thisOne = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(vaerdi);
thisOne.deleteRows(500,500);
thisOne.deleteColumns(5, 23);
thisOne.getRange(1,1).setFormula("=ArrayFormula(FILTER('Individuelle varer'!A16:D30015,'Individuelle varer'!A16:A30015=" & Char(34) & vaerdi & Char(34) & ")))");
}
}
}
activeSheet는 이름으로 호출 할 수 있으므로 activeSpreadsheet 일 수 있습니다. 그러나 범위 A1 : A131에는 많은 변수가 있습니다. 때로는 빈 줄과 새 머리글이 있습니다 (새 머리글은 굵게 표시됨). 그러나 기본적으로 여기에 선과 같은 이름으로 약 120 개의 새로운 시트가 스프레드 시트에 표시되기를 원합니다. 그러나 아무 일도 일어나지 않습니다. 통나무를 던지려고했지만 어디에서나 그 값을 읽을 수 없습니다.
스크립트를 스프레드 시트에 연결하는 방법에 대한 가장 기본적인 기본 사항이 없어야합니다.
편집 : 여기 및 다른 장소의 팁에 따라 코드를 업데이트하려고 시도했지만 여전히 멋진 일은 없지만 지금은 다음과 같습니다.
function kraft() {
var rightHere = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A1:A131");
var loopy;
var goshDarn = "";
for (loopy = 1; loopy < 132; loopy++) {
celly = rightHere.getCell(loopy,1);
vaerdi = celly.getValue();
fed = celly.getFontWeight();
console.log(vaerdi & " - " & fed);
if (vaerdi != "" && fed.isBold == false) {
SpreadsheetApp.getActiveSpreadsheet().insertSheet(vaerdi);
var thisOne = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(vaerdi);
thisOne.deleteRows(500,500);
thisOne.deleteColumns(5, 23);
thisOne.getRange(1,1).setFormula("=ArrayFormula(FILTER('Individuelle varer'!A16:D30015,'Individuelle varer'!A16:A30015=" + "\"" + vaerdi + "\"" + ")))");
}
}
}
EDIT2 : 내가 필요로하는 조언 덕분에 이제이 코드로 문제가 해결되었습니다 :
function kraft() {
var rightHere = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A1:A131");
var loopy;
for (loopy = 1; loopy < 132; loopy++) {
celly = rightHere.getCell(loopy,1);
vaerdi = celly.getValue();
fed = celly.getFontWeight()
console.log(vaerdi & " - " & fed);
if (vaerdi != "" && fed != "bold") {
SpreadsheetApp.getActiveSpreadsheet().insertSheet(vaerdi);
var thisOne = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(vaerdi);
thisOne.deleteRows(500,499);
thisOne.deleteColumns(5, 20);
thisOne.getRange(1,1).setFormula("=ArrayFormula(FILTER('Individuelle varer'!A16:D30015;'Individuelle varer'!A16:A30015=" + "\"" + vaerdi + "\"" + "))");
}
}
}
- 답변 # 1
관련 자료
- c++ - 제한된 자동이 msvc 함수 매개 변수에 대해 작동하지 않습니까?
- 계속이이 간단한 Python 함수에서 작동하지 않는 것 같습니다
- batch file - bat 스크립트에 매개 변수를 입력하여 실행하는 동안 오류가 발생했습니다
- javascript - 유형 스크립트에서 함수 유형 선언에 인터페이스를 사용하는 방법
- google sheets - onEdit () 특정 셀이 스크립트를 실행하지 않습니다
- c++ - Gmock 매개 변수를 사용하지 않는 한 줄 함수를 모의하는 방법은 무엇입니까?
- Google Cloud 함수에서 실행하기 위해 Python 스크립트를 사용하여 여러 부분으로 zip 파일을 추출하는 방법
- 파이썬 스크립트에서 작동하지 않는 입력 함수
- node.js - conncommitAsync는 트랜잭션으로 실행할 때 함수 오류가 아닙니다
- python - 에서 파일 중 하나를 찾을 수 없기 때문에 터미널에서 코드를 실행해도 작동하지 않습니다
- k 초 동안 파이썬 스크립트 실행
- javascript - 조건이 충족 될 때 setInterval 및 clearInterval을 사용하여 함수를 실행합니까?
- kubernetes - Terraform으로 스크립트 실행
- 실행을 위해 SQL에서 산술 합계를 분석 함수와 결합하는 방법
- c# - 파괴 가능한 객체에 대한 스크립트를 작성했지만 특정 시간이 지나도 파괴 된 객체가 깨지지 않습니까?
- bash - 리눅스 내 Linux 명령이 터미널에서 작동하지만 스크립트에서는 작동하지 않는 이유
- applescript - Macbook이 잠자기 상태가되면 JXA 스크립트 실행이 중지됩니다
- javascript - 쿠키가 등록되지 않아 기능이 실행되지 않습니다
- c# - 특정 기능을 실행할 때 Unity 편집기가 멈춤
- python - PyCharm은 닫힌 후에도 여전히 실행중인 스크립트를 표시합니다
관련 질문
- javascript : 편지 병합에서 병합된 행과 열을 선택하는 방법은 무엇입니까?
- javascript : 특정 시간마다 URL WebApp 트리거
- javascript : 스프레드시트에서 다른 데이터로 데이터를 가져오는 방법
- javascript : Google 스프레드시트 -날짜가 겹치는 datedif
- javascript : 한 열의 셀에서 마지막 문자열만 가져오는 방법
- javascript : GAS를 사용하여 미리 설정된 할부 수를 기반으로 날짜 배열을 생성하는 방법은 무엇입니까?
- javascript : Google Sheet App Script를 사용하여 다른 열에 숫자 1이 있을 때 한 열에서 셀로 ID 가져오기
- date : Google Apps Script: 현재까지 일반 텍스트 형식 지정
- java : Google 시트를 검색하고 행을 반환하려면 어떻게 해야 합니까?
- 내 Google Apps Script code 편집기에 "배포" 버튼이 없는 이유는 무엇입니까?
스크립트에 여러 가지 문제가 있지만 가장 큰 문제는 'if'문에서 isBold () 함수를 실제로 호출하지 않는다는 것입니다.
'fed.isBold'에서 괄호를 생략했기 때문에 표현식은 'true'로 평가되지 않습니다. 괄호없이 'isBold'는 함수이므로 Object 유형입니다.
스크립트가 제대로 실행되지 못하게하는 다른 문제가 있습니다 :
<올>'var'키워드를 사용하여 변수를 선언하고 전역 범위를 오염시키지 않습니다. 결과적으로'for'루프 내에서 선언 한 모든 변수는 함수 전용이 아닙니다. 대신, 전역 객체에 연결되며 함수 외부에서 액세스 할 수 있습니다. https://prntscr.com/kjd8s5
내장 디버거를 사용하지 않습니다. 함수 실행이 디버깅되지 않습니다. 중단 점을 설정하고 디버그 단추를 클릭하여 기능을 단계별로 실행하고 실행중인 모든 값을 검사해야합니다.
존재하지 않는 열을 삭제합니다. 새 시트를 만들 때deleteColums ()를 호출합니다. 총 26 개의 열이 있습니다. 첫 번째 매개 변수는 시작 열이고 두 번째 매개 변수는 삭제해야하는 열 수를 지정합니다. 열 5에서 시작하여 23 개의 열을 제거하도록 스크립트에 지시하면 예외가 발생합니다. 이러한 오류를 피하려면 항상 설명서를 참조하십시오.
console.log가 스크립트 편집기의 컨텍스트에 없습니다. 브라우저 내에서 스크립트를 실행하고 있지 않으므로 브라우저 오브젝트 모델을 사용할 수 없습니다. Logger.log ()를 사용하십시오. 이 내용은 설명서에 자세히 설명되어 있습니다.
수식의 형식이 잘못되었습니다.
JS는 익숙하지 않은 동적 유형 언어입니다. 코드를 작성하기 전에 최소한의 조사를하지 않으면 많은 어려움을 겪게됩니다.