¡Cómo configurar una ventana emergente de cuadro de mensaje cuando el valor de una celda activa es # DIV / 0!
Dim GP
GP = "=(" & "Sheet1_Revenue!" & INR1Value & "-" & "Sheet2_Cost!" & INR2Value & ")/" & "Sheet1_Revenue!" & INR1Value
Sheets("Sheet2_Cost").Cells(I + 3, J).Select
ActiveCell = GP
Selection.NumberFormat = "0.00%"
With Selection.Interior
.Color = 65535
End With
If ActiveCell.Value = "#DIV/0!" Then
MsgBox "Not an Error: Kindly feed INR values under Sheet1_Revenue"
End If
Intenté If ActiveCell.Value =
y If GP.Value =
pero ambos no funcionan. Ayúdame a entender cómo resolver este problema.
Gracias por adelantado
3 respuestas
Reemplazar:
If ActiveCell.Value = "#DIV/0!" Then
Con:
If ActiveCell.Text = "#DIV/0!" Then
Digamos que comenzamos con:
Este código:
Sub ErrorGrabber()
MsgBox ActiveCell.Value
End Sub
Producirá:
Pero este código:
Sub ErrorGrabber()
MsgBox ActiveCell.Text
End Sub
Producirá:
El Excel le muestra el valor "# DIV / 0!" cuando estás dividiendo un número en Cero ... pero este valor no es una cadena ... tu declaración if debería estar en la parte principal de la programación como este ejemplo
dim a as single, b as single, ans ans single
if b = 0 then
msgbox "...."
else
ans = a / b
end if
Para "atrapar" un "#DIV/0!"
es un código de 2 pasos:
If IsError(ActiveCell.Value) Then ' first check if cells contains an error
If ActiveCell.Value = CVErr(xlErrDiv0) Then ' check the type of error
MsgBox "Not an Error: Kindly feed INR values under Sheet1_Revenue"
End If
End If
Sin embargo, creo que el mejor método es verificar el valor del valor del Divisor, antes de realizar la división.
Nota : no es necesario utilizar ActiveCell
, puede ejecutar su código directamente en el rango completo:
With Sheets("Sheet2_Cost").Cells(I + 3, J)
.Value = GP
.NumberFormat = "0.00%"
With .Interior
.Color = 65535
End With
End With
Nuevas preguntas
excel
Solo para preguntas sobre programación contra objetos o archivos de Excel, o desarrollo de fórmulas complejas. Puede combinar la etiqueta de Excel con VBA, VSTO, C #, VB.NET, PowerShell, automatización OLE y otras etiquetas y preguntas relacionadas con la programación, si corresponde. La ayuda general con respecto a MS Excel para funciones de hoja de trabajo única está disponible en Super User.