Recuento en ejecución: La suma no se realiza correctamente cuando se introduce una cantidad inferior a la esperada.
Estoy utilizando un formulario que toma un elemento y una cantidad. Estoy tratando de crear un conteo acumulativo que consiste en la cantidad (indicado como qtytxt1
, qtytxt2
, etc) de cada elemento. Cada elemento tiene su propio campo de entrada de cantidad indicado con el número final (es decir, qtytxt1
se aplica al elemento 1).
Estoy tratando de tener una celda ubicada en (emptyRow, 27)
para mostrar la suma de la cantidad total de todos los elementos introducidos en el formulario (es decir, Cantidad del elemento 1 = 2,000; Cantidad del elemento 2 = 3,000; Resultado esperado = 5,000).
Hay un total de 10 campos de entrada para “Elemento/Cantidad,” sin embargo, no se espera que se utilicen los 10 campos. He creado un código que parece funcionar como prefiero, sin embargo, recibiría un mensaje de error de suma al ingresar menos de 10 elementos.
Dim emptyRow As Long
Dim data As Worksheet
Dim runCount As Long
Worksheets("mining history").Activate
emptyRow = WorksheetFunction.CountA(Range("i:i")) + 6
Set data = Sheets("data")
runCount = 0
If qtytxt2.Value = "" Then
qtytxt2.Value = 0
ElseIf qtytxt3.Value = "" Then
qtytxt3.Value = 0
ElseIf qtytxt4.Value = "" Then
qtytxt4.Value = 0
ElseIf qtytxt5.Value = "" Then
qtytxt5.Value = 0
ElseIf qtytxt6.Value = "" Then
qtytxt6.Value = 0
ElseIf qtytxt7.Value = "" Then
qtytxt7.Value = 0
ElseIf qtytxt8.Value = "" Then
qtytxt8.Value = 0
ElseIf qtytxt9.Value = "" Then
qtytxt9.Value = 0
ElseIf qtytxt10.Value = "" Then
qtytxt10.Value = 0
End If
If IsEmpty(Range("E:E")) Then
'Está vacío
runCount = 0
Else
'No está vacío
runCount = WorksheetFunction.Sum(qtytxt1.Value, qtytxt2.Value, qtytxt3.Value, qtytxt4.Value, qtytxt5.Value, qtytxt6.Value, qtytxt7.Value, qtytxt8.Value)
Cells(emptyRow, 27).Value = runCount
End If
davy.ai
Para evitar el mensaje de error de suma al ingresar menos de 10 elementos, puedes modificar el código para que solo se sumen los campos de cantidad que tengan un valor ingresado.
En lugar de incluir todos los 10 campos de cantidad en la fórmula
WorksheetFunction.Sum
, puedes usar un bucle para recorrer los 10 campos y verificar si tienen un valor. Si se encuentra un valor, agrégalo a la variablerunCount
.Aquí tienes un ejemplo de cómo podrías modificar el código:
Este código recorrerá cada uno de los 10 campos de cantidad y agregará el valor a
runCount
si no está vacío. De esta manera, solo se incluirán en la suma los campos de cantidad ingresados y no recibirás un mensaje de error de suma si algunos campos quedan en blanco.