Ir para o conteúdo
  • Cursos
  • Sobre
  • Conteúdo
  • Eventos
  • Contato
Menu
  • Cursos
  • Sobre
  • Conteúdo
  • Eventos
  • Contato
pedir orçamento
BLOG

Office Script – Maneiras de mapear uma última célula

Imagem como o texto em destaque sobre o Office Script

Olá, seguidor e seguidora do blog!

Neste sexto artigo do retomo um tema que tem sempre me desafiado: o Office
Script.

Desta vez não vamos tratar deu um assunto complexo, mas funcional. Algo que
precisamos fazer em diversas das nossas rotinas:
mapear a última célula com conteúdo de uma coluna.
Se você é um usuário do VBA, o comando que utilizando para fazer o
mapeamento é:

w.Cells(w.Rows.count, 1).end(xlup)

Onde:

w – é uma variável mapeada para uma planilha da pasta de
trabalho;
Cells – Conjuntos de células da planilha
Rows.count – total de linhas da planilha ou 1.048.576 nas versões a
partir da 2007.
1 – coluna A, onde vamos verificar a última célula preenchida com
conteúdo.
.end(xlup) – Similar ao CTRL + Seta para cima, para mapear a última
célula com conteúdo.

Traduzindo tudo isso: A instrução situa o cursor na última célula da coluna
A (A1048576) e aplica um CTRL + Seta para cima, parando o curso na última
célula preenchida com dados.

Agora é a vez de fazer isso no Office Script.

Monte sua planilha com a estrutura abaixo:

Print alternativo com 11 nomes e uma linha de título para teste do script

Agora, no seu script, crie a função abaixo:


function main(workbook: ExcelScript.Workbook) {
    let w = workbook.getActiveWorksheet() //Mapeamos a planilha ativa
    let ultCel = w.getCell(0, 0).getRangeEdge(ExcelScript.KeyboardDirection.down).getRowIndex()


    console.log(ultcel)
}


Na primeira linha, mapeamos a variável w para a planilha ativa
(getActiveWorksheet).

Na segunda linha, mapeamos a variável ultCel. Essa variável não vai guardar
a referência da célula mapeada, mas somente o número da linha que está com o
último conteúdo. 

Olhando a instrução com detalhes:

getCell(0,0) – Captura a referência da célula A1. Lembre-se que no
Office Script, a primeira linha e a primeira coluna começam a contar com o
número 0 (zero).

getRangeEdge – Método para definir e obter o intervalo selecionado
na API Javascript do Excel (documentação Microsoft)

ExcelScript.KeyboardDirection.down – É como se utilizássemos o CTRL
+ Seta para baixo para navegar entre as células com conteúdo a partir de A1.
Parando na última célula com dados.

getRowIndex – Captura o número da linha da célula ativa
(mapeada como sendo a última célula com conteúdo).

A única desvantagem desse método é que, se houver alguma linha ou célula em
branco na coluna A, a célula imediatamente acima será mapeada como última
célula.

Ao executarmos o código acima, no console será informada a linha 10 (olhe a
imagem das células, apesar do número da linha ser a 11, o resultado é 10
devido a base 0 (zero)).

Para não ter esse problema no momento do mapeamento, utilizo essa instrução
com uma pequena alteração. Eu mapeio a última célula da planilha e utilizo o
deslocamento para cima. Dessa forma, a última célula preenchida da coluna
será mapeada.
 

let ultCel
= w2.getCell(w.getRange().getRowCount() – 1, 0).getRangeEdge(ExcelScript.KeyboardDirection.up).getRowIndex();

A mudança no código é a referência da célula base: ao invés de mapear a
célula A1, usamos o código w.getRange().getRowCount() que retorna 1048576. O
menos 1 (-1) da fórmula é utilizado para compensar a base 0 e retornar o
mesmo resultado anterior: 10.

Se você quer mais informações e um curso para seguir para aprender a
utilizar o Office Scripts, tenho um curso completo em meu portal. Um
excelente meio de entrar para o mundo do desenvolvimento de Scripts para sua
planilha Online.


Utilize o cupom: ARTIGOTROVATO e ganhe um desconto de 30% no
valor do curso. Esse cupom deve ser utilizado na hora do pagamento e é
exclusivo para você que leu o artigo e acompanha meus trabalhos por
aqui. 

Você não vai ver a divulgação deste cupom em lugar nenhum mais.

Clique aqui
para adquirir o curso com 30% de desconto.

Agora é sua vez… Pratique um pouco e escreva o código deste artigo (Não vale copiar e colar!). 

Que assunto gostaria que eu escrevesse no próximo artigo?
Deixe sua sugestão nos comentários!

✔ Para acesso ao conteúdo programático do curso clique aqui.

Imagem com uma representação do Office Script

Convido você a ler outros artigos que já escrevi sobre
o Office Script:

Office Script | TypeScript – Método reduce para array
(dica)

Office Script | TypeScript – Método reduceRight para array
Office Script | Que tal estudar esta tecnologia agora?
Office Script | Estrutura de decisão IF … ELSE IF … ELSE
…
 – Artigo 1
Office Script | Estrutura de decisão IF … ELSE IF … ELSE
…
 – Artigo 2
Office Script | Estrutura de decisão SWITCH … CASE – Artigo 1
Office Script | Estrutura de decisão SWITCH … CASE – Artigo 2
Office Script | Type Annotation – Declaração de variáveis
Office Script | Como ativá-lo em sua organização
Office Script | Como compartilhar seu script com outras
pessoas
Office Script | Gravador de Ações – Problema e Solução:
Classificação Horizontal
Office Script | Classificação vertical dos dados
Office Script | Estrutura de Repetição FOR

Office Script | Dois métodos diferentes de fazer o mapeamento de
células
 
Office Script | Está na hora de começar a aprender a trabalhar
com arrays
 
Office Script | Array para trabalhar com milhares de células 
Office Script | O que você deve EVITAR nos seus scripts <novo> 

Até o próximo artigo!

Alessandro
Trovato
Compartilhando conhecimento, sempre!

#typescript #officescript #excelonline
#excelscript #trovato #mvp #mvpbr #cursostrovato #if #elseif
#excelonlinescript




Mais vendidos Amazon

Contato

Telefone:

+55 11 98861.4882

E-mail:

contato@alessandrotrovato.com.br

Siga-nos

Facebook Instagram Linkedin Twitter Youtube

© Copyright 2024 – Todos os direitos reservados | Alessandro Trovato

criado por: