【发布时间】:2023-02-11 03:35:33
【问题描述】:
这超出了我的知识水平,我希望得到帮助。下面的脚本有一些限制。此脚本检查区域选项卡是否存在,如果不存在,源工作表中的区域数据将复制到该区域名称的新选项卡。区域是源工作表的第 24 列,数据从第 3 行开始,标题是第 2 行。
如果区域选项卡已经存在,我希望它被删除重新创建或用当前数据重新填充而不是被跳过。
function createSheets(){
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sourceWS = ss.getSheetByName("Forecast (SQL) Validation")
const regions = sourceWS
.getRange(3,24,sourceWS.getLastRow()-2,1)
.getValues()
.map(rng => rng[0])
const uniqueRegion = [ ...new Set(regions) ]
const currentSheetNames = ss.getSheets().map(s => s.getName())
let ws
uniqueRegion.forEach(region => {
if(!currentSheetNames.includes(region)){
ws = null
ws = ss.insertSheet()
ws.setName(region)
ws.getRange("A2").setFormula(`=FILTER('Forecast (SQL) Validation'!A3:CR,'Forecast (SQL) Validation'!X3:X="${region}")`)
sourceWS.getRange("A2:CR2").copyTo(ws.getRange("A1:CR1"))
}//If regions doesn't exist
})//forEach loop through the list of region
} //close createsheets functions
【问题讨论】:
-
这个问题需要更多关注:1)每个帖子只有一个“改进”(问题)2)“我希望将其删除重新创建或重新填充”-->选择一个。
-
recreated or repopulated with current data那些还不存在的选项卡是怎么回事,对吧?因此,对于已经存在的选项卡,将以相同的方式完成,只是应该删除或修改较旧的选项卡。那是对的吗?
标签: javascript google-apps-script google-sheets