Respostas:
Com este pequeno trecho, você pode fazer isso.
function isFormula(startcol, startrow) {
// prepare string
var str = String.fromCharCode(64 + startcol) + startrow;
// retrieve formula
var fCell = SpreadsheetApp.getActiveSpreadsheet()
.getRange(str).getFormula();
// return false if empty else true
return fCell ? true : false;
}
Em esta resposta , Tom Horwood encontrou uma maneira de contornar o uso de aspas.
Adicione o script em Ferramentas> Editor de scripts e pressione o botão de bug para ativar a autenticação.
Eu criei um arquivo de exemplo para você: verifique a fórmula
isFormula(a1)
? (em MS excel seria uma função que recebe um parâmetro de intervalo)
Use a função interna ISFORMULA () .
Acho que acabei de descobrir uma fórmula não documentada nas novas planilhas do Google. A @Pnuts estava dizendo que a CELL
fórmula não funcionava (parcialmente porque está disponível apenas nas novas planilhas do Google), então copiei o código em uma nova planilha do Google. Ocorreu um erro ao me dizer que minha fórmula (personalizada) aceita apenas um argumento e não dois:
Renomear o isFormula
para outra coisa resultou em uma função personalizada de trabalho. Depois disso, criei outra planilha do Google e usei a isFormula
fórmula. A fórmula não aparece no preenchimento automático, mas está funcionando:
Portanto, se a fórmula estiver disponível em todas as novas planilhas do Google, essa seria a melhor resposta:
=isFormula(A1)
Disponível apenas nas novas Planilhas Google. Pedi a algumas outras pessoas para confirmar a nova fórmula e está confirmada. Como não está documentado, sua implementação é incerta e pode desaparecer. O ARRAYFORMULA
não funciona quando usado com esta nova fórmula.
Eu criei um arquivo de exemplo para você: isFormula
Parece que existe uma função interna oculta ISFORMULA()
do Google. Percebi quando excluí minha própria função e ainda estava funcionando. Eu tentei em uma nova planilha e ainda funciona. Nenhum problema de cache.
isFormula2("A1")
. então tentei criar uma nova versão assim:function isFormula2(cell) { return (cell.getFormula())!=""; }
e esperava que fosse possível usar usando,isFormula2(A1)
mas isso não parece funcionar e, ao tentar depurar, é mostradocell
como indefinido ... alguma idéia do porquê disso e se as coisas poderiam ser mudou para que ele funcione com emf(A1)
vez def("A1")
?