onOpen em folha específica no AppScript
Eu tenho um onOpencódigo de execução, mas quero executá-lo apenas quando uma folha específica é aberta (por exemplo, ao abrir Sheet1a função onOpen deve ser executada.) Alguém sabe como fazer isso?
Aqui está exatamente o que eu quero alcançar:
- Ao abrir a planilha, verifique se a planilha ativa é a planilha1. Caso seja então executar uma condição dentro dessa planilha, conforme mostrado abaixo:
onOpen() { //If the active sheet is "Sheet1" then perform this: //Sheet Execution comes here. }
Mas aqui está o problema com a afirmação acima:
onOpen verificará apenas quando a folha for aberta. Quero verificar sempre que a planilha ativa for "Plan1". Assim, por exemplo, inicialmente o usuário abre a planilha, ele chega à "Planilha1" Agora a condição é verificada e a saída é exibida, mas e se o usuário alterar a guia para "Planilha2" e depois voltar para "Planilha1". Nesse caso onOpen(), não será executado. Desejo realizar minha verificação toda vez que o usuário pousa ou muda para "Folha1".
Agora aqui está outro cenário:
usando onSelectionChange:
onSelectionCHange() { //If the active sheet is "Sheet1" then perform this: //Sheet Execution comes here. }
Agora isso funcionará toda vez que o usuário alternar para "Planilha1", mas aqui está o problema, mesmo se o usuário alternar para células diferentes na "Planilha1" onSelectionChangeserá acionado, o que novamente é algo indesejado. Tudo que eu quero é apenas acionar a função cada vez que a guia / planilha for alterada para "Planilha1" e não apenas quando a planilha for aberta ou qualquer célula de seleção for alterada.
Respostas
Explicação:
Para executar um bloco de código dentro da onOpenfunção única quando você abre o arquivo de planilha de Sheet1 , em seguida, você pode construir o seguinte se condição:
function onOpen(e) {
const as = e.source.getActiveSheet().getName();
if (as == 'Sheet1'){
//code you want to be executed when you open the spreadsheet from Sheet1
}
}
Recua:
A função onOpen só é executada quando você abre o arquivo de planilha . Você não pode simplesmente alternar entre as planilhas e esperar que o onOpen funcione.
Solução:
Para executar um código ao alternar entre folhas diferentes, você pode usar onSelectionChange(e). O exemplo a seguir define o valor da célula A1 da Folha1 quando você muda de uma folha diferente para a Folha1 :
function onSelectionChange(e) {
const as = e.source.getActiveSheet();
if (as.getName() == 'Sheet1'){
as.getRange('A1').setValue("This is Sheet1");
}
}
E aqui está um modelo de código geral para executar um código ao alternar para a Planilha1 :
function onSelectionChange(e) {
const as = e.source.getActiveSheet();
if (as.getName() == 'Sheet1'){
// put your code here
}
}
Referências:
- onOpen (e)
- onSelectionChange (e)