Difícil de explicar este. Imagine que você está no Excel, pressionando a tecla para baixo para percorrer as linhas. Ao chegar na parte inferior da tela, pressionar a tecla para baixo novamente fará com que a planilha role para baixo uma linha por vez, para que a célula selecionada nunca fique fora do alcance visível.
Estranhamente, o que eu gostaria é que esse comportamento acontecesse quando eu estivesse (digamos) 20 linhas abaixo. Portanto, sempre há 20 linhas visíveis abaixo da minha célula selecionada.
Não serei o primeiro a desejar esse comportamento - alguém sabe se é possível e, em caso afirmativo, como? Qualquer coisa (praticamente) é possível no VBA, mas prefiro uma solução sem script, se possível - obrigado!
É bastante compreensível para alguém que já se interessou pelo z/OS...
Fora do vba, conheço o bloqueio de rolagem que evita que a seleção mude durante o movimento e a página para cima / baixo que mantém a mesma posição do cursor visual, mas também move quantas linhas são mostradas na tela; nenhum dos quais se encaixa na conta.
Eu projetei um caso especial disso - ele mantém a seleção permanentemente centralizada, pelo menos quando os tamanhos das células são fixos (caso contrário, o cálculo é confuso, como apontado, e provavelmente mais lento). O intervalo exibido, ou seja, tamanho da tela + zoom, pode ser determinado dinamicamente com um pequeno custo extra. Também não manipulou a seleção de intervalo - centralizará de acordo com a célula superior esquerda em vez de centralizar ou ignorar, nem adicionará os eventos dinamicamente a novas planilhas.
A adição de 20% - 80% de limitação de borda deve ser relativamente simples (é necessário introduzir um conceito de 'momentum' e, em seguida, verificar se a linha selecionada - linha superior visível > 0,8 * linhas da tela, etc.); no entanto, uma solução robusta está além do meu escopo.