variable valor una ultima sirve seleccionar rango que para macro hoja hasta espaƱol desde datos con celda asignar activesheet activa vba excel-vba

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