La función WorksheetFunction.DGet es una función de VBA que extrae un solo valor de una columna de una lista o de una base de datos que corresponde con las condiciones que se especifique. Se presenta de la siguiente manera:
WorksheetFunction.Dget (Arg1, Arg2, Arg3)
Donde Arg1 contiene el rango de celdas que conforma la base de datos. En la cual, la primera fila de la lista contiene etiquetas para cada columna.
Para Arg2 indica la columna donde se encuentra el posible valor. Para este caso, puede ingresar la etiqueta de la columna entre comillas dobles, por ejemplo, "Salario" o "Posición", o un número (estas sin comillas) que represente la posición de la columna dentro de la lista: 1 para la primera columna, 2 para la segunda columna , y así sucesivamente.
Por último, Arg3 es el rango de celdas que contiene las condiciones según el criterio. Es decir, se puede usar cualquier rango para el argumento de criterios, siempre que incluya al menos una etiqueta de columna y al menos una celda debajo de la etiqueta de la columna en la que se especifique una condición para dicha columna.
Por ejemplo, se presenta un registro de medicinas de algún hospital, en el cual se muestra distintos medicamentos. Sin embargo, se desea saber en particular el código, el stock del fármaco y el código de uno de ellos.
Entonces:
Se crea un cuadro donde se mostrará la medicina escogida y sus posibles datos a elegir
El código sería es el siguiente:
Sub UsoDgetFunction()
Dim Descripcion As String
Descripcion = InputBox("Ingrese el nombre del medicamento", "Registro de los medicamentos")
Range("F2").Value = Descripcion
Range("G2").Value = Application.WorksheetFunction.DGet(Range("A1:D6"), 2, Range("F1:F2"))
Range("H2").Value = Application.WorksheetFunction.DGet(Range("A1:D6"), 3, Range("F1:F2"))
Range("I2").Value = Application.WorksheetFunction.DGet(Range("A1:D6"), 4, Range("F1:F2"))
End Sub
Por tanto, el código pediría el nombre del medicamento, de esta forma:
Finalmente, el valor resultante sería el completo detalle de lo que se busca:
Esta función equivale a la función BDEXTRAER en Excel
Descargar Ejemplo: Ejemplo Worksheetfunction.Dget
Por: Allison Monar
22/11/2019 a las 12:19 pm
¿Cómo sería lo mismo pero cuando más de un producto?, por ejemplo otra aspirina.