Si afirmación de que sólo lleva a cabo una acción cuando la selección se encuentra dentro de una columna específica

votos
1

Estoy tratando de terminar esta macro que abrirá otro libro, copiar y pegar las celdas seleccionadas en el otro libro. Quiero hacer esto sólo cuando la selección está en la columna A y sólo cuando la selección contiene datos.

La parte de datos si la selección contiene es fácil, sin embargo, ¿cómo puedo hacer una declaración que dice que si la selección no está dentro de la columna A, entonces MsgBox(Please select data)?

Esta es la sentencia if hasta ahora, todavía necesita de la parte mencionada directamente por encima.

'Warns if no QN#s are selected
If Selection =  Then
MsgBox (Please Select Your QN#s Before Running This Macro)
Exit Sub
End If
Publicado el 27/11/2018 a las 16:53
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
2

Esto parece funcionar para reconocer si las células están dentro de un cierto columna.

If Not Intersect(Selection, Range("A:A")) Is Nothing Then
'Proceed
Else
MsgBox ("Please Select Your QN#s Before Running This Macro")
Exit Sub
End If
Respondida el 27/11/2018 a las 18:13
fuente por usuario

votos
1

¿Por qué no utilizar un Worksheet_SelectionChange?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Column <> 1 Then
        MsgBox "Please Select Your QN#s Before Running This Macro", vbOKOnly, "Data Selection"
    Else
        RunMacro
    End If

End Sub
Respondida el 27/11/2018 a las 18:19
fuente por usuario

votos
0

Utilizar este patrón de códigos. Esto es sólo tratando con la selección y no detectar cambios.

Dim a As Integer
Dim b As Integer
Dim c As String
a = Selection.Row
b = Selection.Rows.Count - 1
c = "A" & a & ":" & "A" & a + b
If ((Selection.Column = 1) And (WorksheetFunction.CountA(Range(c)) > 0)) Then

MsgBox "ready to go"

End If

En el código anterior se tendrán en cuenta las filas ocultas con los datos. Las celdas combinadas se consideran como una celda con valor y otros son piezas en bruto (ejemplo: Cuando haya fusionado A2: A5, entonces tiene 3 celdas en blanco)

Respondida el 27/11/2018 a las 18:33
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more