¿Hay una manera simple de hacerlo, mediante macro o de otro modo? Por campo calculado me refiero a un campo que se calcula a partir de otros campos, frente a los valores ingresados sin procesar. Al resaltar me refiero al color diferente. Necesito esto para comprender mejor una gran hoja de cálculo de un cliente.¿Cómo resaltar los campos calculados en una hoja de cálculo de Excel?
Respuesta
Para hacerlo manualmente, presione la tecla F5 para abrir el cuadro de diálogo Ir a. Haga clic en el botón Células especiales. En la siguiente pantalla, seleccione Fórmulas (es una opción a la derecha).
Excel seleccionará todas las celdas que coincidan. Ahora solo se trata de aplicar formato.
esto funciona y es simple ... la solución basada en macro sugerida por otra persona simplemente no lo hizo trabajo – DSO
Y solo recibo UN punto, mientras que la solución no funciona se vuelve más? –
Puede utilizar la propiedad Interior.ColorIndex para cambiar el color de fondo de la celda activa:
ActiveCell.Interior.ColorIndex = 36
También puede aplicar a un rango:
Range("A1:A5").Interior.Color = RGB(200,160,35)
Esto se aplica a Excel 2003, me no he usado la última versión, pero dudo que esto haya cambiado.
Por lo general, puede grabar una macro y luego ver el código generado para ver cómo se hace algo.
solución simple: Ctrl - `(la tecla justo por encima de la lengüeta)
esto sólo cambiar la vista para mostrar fórmulas. La pregunta solicitada para cambiar el color de fondo de estos campos. – AgentConundrum
Fantástico, muestra las fórmulas en línea. La mejor solución para el problema de raíz: 'Necesito esto para comprender mejor una hoja de cálculo grande de un cliente' –
Voy a suponer que sólo está hablando de las fórmulas de celda en lugar de cálculos VBA aquí, ya que es posible establecer el color de la celda en su procedimiento de VBA si lo está haciendo de esa manera.
La forma de hacerlo es verificando la celda de una fórmula después de que haya terminado con ella, y cambie su color en ese punto. El evento relevante aquí es el cambio, y la propiedad HasFormula de la célula le dirá si la célula es un valor literal, o se calcula a partir de una fórmula:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.HasFormula Then Target.Interior.Color = vbRed Else ' remove background colour entirely (i.e. No Fill) Target.Interior.ColorIndex = xlColorIndexNone End If End Sub
El siguiente código debe desplazarse a través de cada hoja, destacando cada células que comienza con un '=' y colores el color deseado (actualmente color 36 que es amarillo claro).
Sub HighLightFormulas()
Dim objSheet As Worksheet
Dim strOriginalSheet As String
Dim intMaxBlankCells As Integer
Dim intBlankColumns As Integer
Dim intBlankRows As Integer
Dim intCurrentColumn As Integer
Dim intCurrentRow As Long
intMaxBlankCells = 40
strOriginalSheet = ActiveSheet.Name
For Each objSheet In Worksheets
intBlankRows = 0
intCurrentRow = 1
intCurrentColumn = 1
Do While intCurrentRow <= 65536 And intBlankRows <= intMaxBlankCells
intBlankColumns = 0
intCurrentColumn = 1
Do While intCurrentColumn <= 256 And intBlankColumns <= intMaxBlankCells
If Left(objSheet.Cells(intCurrentRow, intCurrentColumn).Formula, 1) = '=' Then
objSheet.Cells(intCurrentRow, intCurrentColumn).Interior.ColorIndex = 36
End If
intCurrentColumn = intCurrentColumn + 1
Loop
If intCurrentColumn = intBlankColumns Then
intBlankRows = intBlankRows + 1
Else
intBlankRows = 0
End If
intCurrentRow = intCurrentRow + 1
Loop
Next objSheet
Worksheets(strOriginalSheet).Activate
Call MsgBox("The Highlighting process has completed", vbOKOnly, "Process Complete")
End Sub
También se detendrá después de 40 celdas en blanco consecutivos (para evitar el procesamiento de todo de una hoja en su mayoría en blanco).
Espero que esto ayude.
Excel VBA proporciona una propiedad para las fórmulas, HasFormula, que podría usar en lugar de buscar el carácter =. De lo contrario, esto parece bueno para establecer el color en campos preexistentes. Mi respuesta solo cubre las que cambias después de que el código esté en su lugar. – AgentConundrum
lo siento votó demasiado rápido ... esto suena como lo que necesito, pero había un error de compilación, y cuando lo arreglé y lo ejecuté, bloqueó Excel.realmente no tuve tiempo para rebuscar, así que me di por vencido, pero alguien acaba de dar una solución no programática que simplemente funcionó – DSO
Excel ha construido en la característica de "Rastrear dependientes" (que muestra las flechas para mostrar las celdas calculadas)
Seleccione el rango que contiene los datos.
Excel 2007 -> Fórmulas -> Depende del seguimiento
Me gustó el código de Craig aquí, porque mantiene el diseño de la hoja de cálculo existente y aún muestra lo que se calcula y lo que no es "de un vistazo", pero lo he modificado un poco para que funcione mejor. fuera del área activa de las hojas, y agregué una subrutina 'UnhighlightFormulas' para que pueda deshacer fácilmente el formateo (por ejemplo, antes de imprimir). Se ha probado en Excel 2007. Tenga en cuenta que perderá cualquier otro color de fondo de celda al ejecutar esto.
Option Explicit
Public Sub HighlightFormulas()
ColorFormulas (36) '36 is yellow
End Sub
Public Sub UnhighlightFormulas()
ColorFormulas (-4142) '-4142 is default
End Sub
Private Sub ColorFormulas(intColor As Integer)
Dim wshSheet As Worksheet
Dim rngRange As Range
Dim rngCell As Range
For Each wshSheet In Worksheets
Set rngRange = RangeInUse(wshSheet)
If Not rngRange Is Nothing Then
For Each rngCell In rngRange
If Left(rngCell.Formula, 1) = "=" Then
If rngCell.Interior.ColorIndex <> intColor Then rngCell.Interior.ColorIndex = intColor
Else
If rngCell.Interior.ColorIndex <> -4142 Then rngCell.Interior.ColorIndex = -4142 '-4142 is default
End If
Next
End If
Next
End Sub
Private Function RangeInUse(ws As Worksheet) As Range
Dim LastRow&, LastCol%
' adapted from http://www.beyondtechnology.com/geeks012.shtml
' Error-handling in case there is no data in worksheet
On Error Resume Next
With ws
LastRow& = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
LastCol% = .Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
End With
Set RangeInUse = ws.Range("A1", Cells(LastRow&, LastCol%))
End Function
TLDR;
Utilice el formato condicional con una fórmula para resaltar todas las celdas que contienen una fórmula.
detalles
En MS Office 365 Versión: 5.0.4667.1002, las siguientes obras
- Seleccione un rango de celdas.
- Case1: Uso
Ctrl + A
para seleccionar todas las celdas. - Case2: Seleccione un rango específico de .
- Case1: Uso
- Vaya a la pestaña Inicio, sección Estilos, y elija Formato condicional> Nueva regla.
- Se abrirá el cuadro de diálogo "Nueva regla de formato".
- elegir la opción "Usar una fórmula para determinar qué células para dar formato"
- En el cuadro de texto, añadir la siguiente regla:
=IsFormula(A1)
- Case1: Si ha seleccionado todas las celdas, utilice
A1
porque es la primera celda. - Case2: Si seleccionó un rango específico, reemplace
A1
con la primera celda de su rango.
- Case1: Si ha seleccionado todas las celdas, utilice
- Haga clic en Formato ...
- El cuadro de diálogo "Formato de celdas" se abrirá.
- Elija el formato que desea aplicar. P.ej. un fondo amarillo.
- Haga clic en Aceptar.
- Todas las celdas que tienen fórmulas ahora tendrán, por ejemplo, un fondo amarillo.
pantalla
Funcionó perfectamente y era exactamente lo que estaba buscando. – emragins
- 1. Copie una hoja de cálculo completa en una nueva hoja de cálculo en Excel 2010
- 2. Abrir archivo de Excel en una hoja de cálculo específica
- 3. dependencias de campos calculados en Knockout
- 4. Hoja de cálculo de Excel de Excel utilizando EPPlus
- 5. Cómo cambio el nombre de la hoja de C# en una hoja de cálculo de Excel
- 6. usando C# para seleccionar una hoja de cálculo en Excel
- 7. Importación de datos de hoja de cálculo de Excel a otra hoja de cálculo de Excel que contiene VBA
- 8. Extraer VBA de una hoja de cálculo de Excel
- 9. Extrae datos de una hoja de cálculo Excel
- 10. Ocultar una hoja de cálculo de Excel con VBA
- 11. ¿Almacenar objetos en la hoja de cálculo de Excel?
- 12. Abrir hoja de cálculo xml en Excel de forma predeterminada
- 13. ruby excel reader, gema de la hoja de cálculo
- 14. Usando Open XML, ¿cómo insertar una fórmula en una hoja de cálculo de Excel 2010?
- 15. C# lea la hoja de cálculo de Excel
- 16. ¿Guardar hoja de cálculo de Excel como .csv con R?
- 17. Guardar hoja de cálculo de Excel con Interop C#
- 18. NullReferenceException al crear la hoja de cálculo de Excel
- 19. Excel sigue cargando mi hoja de cálculo con un error
- 20. hoja de cálculo Excel xml: ¿es posible incrustar imágenes?
- 21. Importar datos de la hoja de cálculo de Excel o CVS en MySQL
- 22. ¿Cómo puedo escribir en una hoja de cálculo de Excel usando Linq?
- 23. ¿Cómo importo una hoja de cálculo de Excel en SQL Server?
- 24. ¿Cómo puedo congelar programáticamente la fila superior de una hoja de cálculo de Excel en Excel 2007 VBA?
- 25. Cómo exportar los datos de hoja de cálculo Excel a SQL Server 2008 tabla
- 26. ¿Cómo escribo mi hoja de cálculo Excel en una variable, usando PhpExcel?
- 27. Google hoja de cálculo de formato condicional de hoja de cálculo
- 28. En C++, ¿hay punteros como referencias de celda en una hoja de cálculo de Excel?
- 29. Aplicación Symfony: cómo agregar campos calculados a los objetos Propel.
- 30. ¿Cómo crear una tabla SQL y llenarla con datos de hoja de cálculo de Excel?
Hubo un hilo anterior sobre este tema: http://stackoverflow.com/questions/61432/tool-for-deciphering-spreadsheets/61448 – Fionnuala