Selección de coordenadas

Tes un monitor grande, pero as mesas coas que traballas son aínda máis grandes. E, mirando pola pantalla en busca da información necesaria, sempre hai a posibilidade de "deslizar" os ollos á seguinte liña e mirar na dirección equivocada. Incluso coñezo xente que, para tales ocasións, sempre garda preto deles unha regra de madeira para pegala á liña do monitor. Tecnoloxías do futuro! 

E se a fila e columna actual están resaltadas cando a cela activa se move pola folla? Unha especie de selección de coordenadas como esta:

Mellor que un gobernante, non?

Hai varias formas de variar a complexidade para implementar isto. Cada método ten os seus pros e contras. Botámoslles unha ollada en detalle.

Método 1. Obvio. Macro que destaca a fila e columna actual

A forma máis obvia de resolver o noso problema "na fronte": necesitamos unha macro que faga un seguimento do cambio na selección na folla e seleccione toda a fila e columna para a cela actual. Tamén é desexable poder activar e desactivar esta función se é necesario, para que esa selección en forma de cruz non nos impida introducir, por exemplo, fórmulas, senón que só funcione cando miramos a lista na procura do necesario. información. Isto lévanos ás tres macros (seleccionar, activar e desactivar) que haberá que engadir ao módulo da folla.

Abre unha folla cunha táboa na que queres obter esa selección de coordenadas. Fai clic co botón dereito na pestana da folla e selecciona o comando no menú contextual Texto de orixe (Código fonte).A xanela do Editor de Visual Basic debería abrirse. Copia este texto destas tres macros nel:

Dim Coord_Selection As Boolean 'Variable global para a selección activada/desactivada Sub Selection_On() 'Macro na selección Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'Procedemento principal que realiza a selección Private Sub Worksheet_SelectionChange(ByVal Target As Rango) Dim WorkRange As Range Se Target.Cells.Count > 1 Entón Saír da Sub 'se se selecciona máis de 1 cela, saia Se Coord_Selection = False Entón Exit Sub 'se a selección está desactivada, saia de Application.ScreenUpdating = False Definir WorkRange = Rango ("A6:N300") 'enderezo do rango de traballo dentro do cal a selección é visible  

Cambie o enderezo do intervalo de traballo polo seu propio: dentro deste intervalo funcionará a nosa selección. A continuación, pecha o Editor de Visual Basic e volve a Excel.

Preme o atallo do teclado ALT + F8para abrir unha xanela cunha lista de macros dispoñibles. Macro Selección_Activada, como podes adiviñar, inclúe a selección de coordenadas na folla actual e a macro Selección_Desactivada - apágao. Na mesma fiestra, premendo no botón Parámetros (Opcións) Podes asignar atallos de teclado a estas macros para facilitar o inicio.

Vantaxes deste método:

  • relativa facilidade de implementación
  • selección: a operación é inofensiva e non cambia o contido nin o formato das celas da folla de ningún xeito, todo permanece como está.

Contras deste método:

  • esta selección non funciona correctamente se hai celas combinadas na folla: todas as filas e columnas incluídas na unión son seleccionadas á vez
  • se preme accidentalmente a tecla Eliminar, non só se borrará a cela activa, senón toda a área seleccionada, é dicir, eliminará os datos de toda a fila e columna.

Método 2. Orixinal. CELL + Función de formato condicional

Este método, aínda que ten un par de inconvenientes, paréceme moi elegante. Para implementar algo usando só as ferramentas de Excel integradas, entrar mínimamente en programación en VBA é acrobacia aérea 😉

O método baséase no uso da función CELL, que pode dar moita información diferente sobre unha cela determinada: altura, ancho, número de fila-columna, formato de número, etc. Esta función ten dous argumentos:

  • unha palabra de código para o parámetro, como "columna" ou "fila"
  • o enderezo da cela para a que queremos determinar o valor deste parámetro

O truco é que o segundo argumento é opcional. Se non se especifica, tómase a cela activa actual.

O segundo compoñente deste método é o formato condicional. Esta función de Excel extremadamente útil permítelle formatar automaticamente as celas se cumpren as condicións especificadas. Se combinamos estas dúas ideas nunha soa, obtemos o seguinte algoritmo para implementar a nosa selección de coordenadas mediante o formato condicional:

  1. Seleccionamos a nosa táboa, é dicir, aquelas celas nas que se debería mostrar a selección de coordenadas no futuro.
  2. En Excel 2003 e anteriores, abra o menú Formato - Formato condicional - Fórmula (Formato — Formato condicional — Fórmula). En Excel 2007 e máis recentes: fai clic na pestana casa (Inicio)botón Formato condicional - Crear regra (Formato condicional — Crear regra) e escolla o tipo de regra Use unha fórmula para determinar que celas formatar (Usar fórmula)
  3. Introduza a fórmula para a nosa selección de coordenadas:

    =OU(CELLA(“fila”)=FILA(A2),CELA(“columna”)=COLUÑA(A2))

    =OU(CELA(«fila»)=FILA(A1),CELA(«columna»)=COLUÑA(A1))

    Esta fórmula verifica se o número de columna de cada cela da táboa é o mesmo que o número de columna da cela actual. Igualmente coas columnas. Así, só se encherán aquelas celas que teñan un número de columna ou de fila que coincida coa cela actual. E esta é a selección de coordenadas en forma de cruz que queremos conseguir.

  4. Fai clic no botón Cadro (Formato) e establece a cor de recheo.

Está case todo listo, pero hai un matiz. O feito é que Excel non considera un cambio na selección como un cambio nos datos da folla. E, como resultado, non desencadea o recálculo de fórmulas e a recoloración do formato condicional só cando cambia a posición da cela activa. Polo tanto, imos engadir unha macro sinxela ao módulo da folla que fará isto. Fai clic co botón dereito na pestana da folla e selecciona o comando no menú contextual Texto de orixe (Código fonte).A xanela do Editor de Visual Basic debería abrirse. Copia este texto desta macro sinxela nel:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

Agora, cando a selección cambie, iniciarase o proceso de recalcular a fórmula coa función CÉLULA en formato condicional e inundar a fila e columna actuais.

Vantaxes deste método:

  • O formato condicional non rompe o formato personalizado da táboa
  • Esta opción de selección funciona correctamente coas celas combinadas.
  • Non hai risco de eliminar unha fila e unha columna completa de datos ao facer clic accidentalmente Borrar.
  • As macros úsanse mínimamente

Contras deste método:

  • A fórmula para o formato condicional debe introducirse manualmente.
  • Non hai unha forma rápida de activar/desactivar este formato: sempre está activado ata que se elimina a regra.

Método 3. Óptimo. Formato condicional + Macros

Medio dourado. Usamos o mecanismo para rastrexar a selección na folla usando macros do método-1 e engadímoslle resaltado seguro usando o formato condicional do método-2.

Abre unha folla cunha táboa na que queres obter esa selección de coordenadas. Fai clic co botón dereito na pestana da folla e selecciona o comando no menú contextual Texto de orixe (Código fonte).A xanela do Editor de Visual Basic debería abrirse. Copia este texto destas tres macros nel:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7:N300") 'адрес рабочего диапазона с таблицей Se Target.Count > 1 Entón Saír Sub Se Coord_Selection = False Entón WorkRange.FormatConditions.Delete Saír Sub End Se Application.ScreenUpdating, = Intersección Intersección = Intermedio ect( WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions .Eliminar End If End Sub  

Non esquezas cambiar o enderezo do rango de traballo polo enderezo da túa táboa. Pecha o Editor de Visual Basic e volve a Excel. Para usar as macros engadidas, preme o atallo do teclado ALT + F8  e proceda do mesmo xeito que o método 1. 

Método 4. Fermoso. Complemento FollowCellPointer

O MVP de Excel Jan Karel Pieterse dos Países Baixos regala un complemento gratuíto no seu sitio web SeguirCellPointer(36 Kb), que resolve o mesmo problema debuxando liñas de frechas gráficas usando macros para resaltar a fila e columna actual:

 

Bonita solución. Non sen fallos en lugares, pero definitivamente paga a pena probalo. Descarga o arquivo, descomprimelo no disco e instala o complemento:

  • en Excel 2003 e anteriores: a través do menú Servizo - Complementos - Visión xeral (Ferramentas — Complementos — Explorar)
  • en Excel 2007 e posteriores, a través Ficheiro – Opcións – Complementos – Ir – Explorar (Ficheiro — Opcións de Excel — Complementos — Ir a — Explorar)

  • Que son as macros, onde inserir o código de macros en Visual Basic

 

Deixe unha resposta