valor - Excel/VBA: pasar una sola celda como argumento
seleccionar hoja excel vba (4)
Si selecciona más de una celda, la función saldrá:
Function AcceptOneCell(rng As Range)
If (rng.Cells.Count > 1) Then
AcceptOneCell = "Only allow 1 cell"
Exit Function
End If
'' your code here
End Function
Quiero hacer que mi función VBA personalizada acepte solo un argumento de celda única. ¿Cuál es el camino correcto de hacerlo?
- pasar
myCell as Cell
o:
- pasar
myRange as Range
y obtener (¿cómo?) la celda superior izquierda por defecto?
Suponiendo que su usuario ingrese un rango con múltiples columnas y filas, puede hacer la siguiente comprobación para salir de la función si eso es lo que quiso decir en la pregunta ...
Function myFunction(ByRef myCell as Range) as SomeDataType_of_your_choice
Dim numRow as Long, numCol as Long
numRow = myCell.Columns.Count
numCol = myCell.Rows.Count
If numRow > 1 or numCol > 1 Then
MsgBox "Only one cell is accepted"
Exit Function
Else
''-- do other stuff you want to do here
End If
End Function
topLeftValue = myRange.Cells(1, 1).Value
numRow = myCell.Columns.Count
numCol = myCell.Rows.Count
Debiera ser
numColum = myCell.Columns.Count
numRow = myCell.Rows.Count