[GoogleAppsScript] 스프레드시트 필터를 열 때마다 업데이트 [GAS]
3478 단어 스플릿 시트GoogleAppsScriptgas
스프레드시트 필터가 업데이트되지 않습니다!
스프레드 시트 필터를 사용할 때 TODAY()
와 같은 날짜 함수로 필터링하거나 GAS (GoogleAppsScript)가 뒷면에서 테이블의 데이터를 변경하면 필터가 최신 상태로 업데이트되지 않고 오래된 데이터가 남습니다. 버립니다.

예를 들어 이달 이후의 데이터로 필터링하더라도

다음달이 되면...

업데이트되지 않았습니다!
다시 필터의 OK버튼을 누르면 갱신됩니다만, 매우 번거롭고 매회 그런 일을 하고 있을 만큼 여가가 아니고, OK버튼을 누를 때마다 「어째서 이런 일하고 있을까… 」라고 후회 그냥 밀려요.
GAS에서 열 때마다 필터를 업데이트하면 해결!
그래서 GAS입니다.
스프레드시트가 열릴 때 필터의 OK 버튼을 누르는 것과 같은 일을 해주면 해결합니다.
main.js// onOpenでスプレッドシートが開かれる度に実行
function onOpen() {
// すべてのシートを取得
const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (const sheet of sheets) {
// フィルタ取得
const filter = sheet.getFilter();
if (!filter) {
continue;
}
// フィルタを同じ内容で更新
const col = filter.getRange().getColumn();
const criteria = filter.getColumnFilterCriteria(col);
filter.setColumnFilterCriteria(col, criteria);
}
}
하고 있는 것은 지극히 단순하고, getFilter()
로 필터를 취득해, 정확히 같은 내용으로 재설정해 줍니다.
필터의 내용을 취득하거나 설정하거나 하려면 columnPosition(列)
를 지정해 주지 않으면 안되므로, getRange().getColumn()
로 열을 취득하고 있습니다.
onOpen
에서 실행하고 있기 때문에 시트를 열어 놓으면 업데이트되지 않지만 필터의 OK 버튼 때와는 달리 맑은 기분으로 F5를 누를 수 있습니다.
Reference
이 문제에 관하여([GoogleAppsScript] 스프레드시트 필터를 열 때마다 업데이트 [GAS]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/premium-gyumeshi/items/2244b19b89eada96e6dc
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그래서 GAS입니다.
스프레드시트가 열릴 때 필터의 OK 버튼을 누르는 것과 같은 일을 해주면 해결합니다.
main.js
// onOpenでスプレッドシートが開かれる度に実行
function onOpen() {
// すべてのシートを取得
const sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (const sheet of sheets) {
// フィルタ取得
const filter = sheet.getFilter();
if (!filter) {
continue;
}
// フィルタを同じ内容で更新
const col = filter.getRange().getColumn();
const criteria = filter.getColumnFilterCriteria(col);
filter.setColumnFilterCriteria(col, criteria);
}
}
하고 있는 것은 지극히 단순하고,
getFilter()
로 필터를 취득해, 정확히 같은 내용으로 재설정해 줍니다.필터의 내용을 취득하거나 설정하거나 하려면
columnPosition(列)
를 지정해 주지 않으면 안되므로, getRange().getColumn()
로 열을 취득하고 있습니다.onOpen
에서 실행하고 있기 때문에 시트를 열어 놓으면 업데이트되지 않지만 필터의 OK 버튼 때와는 달리 맑은 기분으로 F5를 누를 수 있습니다.
Reference
이 문제에 관하여([GoogleAppsScript] 스프레드시트 필터를 열 때마다 업데이트 [GAS]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/premium-gyumeshi/items/2244b19b89eada96e6dc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)