while loop for code excel vba excel-vba

loop - ¿Cómo configuro la selección en Nothing cuando programo Excel usando VBA?



vba code for excel (13)

Cuando creo un gráfico después de usar range.copy y range.paste, deja el rango de pegado seleccionado, y luego cuando creo un gráfico unas líneas más tarde, usa la selección como la primera serie de la gráfica. Puedo eliminar la serie, pero ¿hay una manera más elegante de hacer esto? Lo intenté

Set selection = nothing

pero no me deja establecer la selección. También probé selection.clear, pero eso solo borró las últimas celdas que fueron seleccionadas, y aún agregué una serie extra a la trama.


No creo que esto se pueda hacer. Aquí hay un código copiado sin modificaciones del sitio de Chip Pearson: http://www.cpearson.com/excel/UnSelect.aspx .

UnSelectActiveCell

Este procedimiento eliminará la celda activa de la selección.

Sub UnSelectActiveCell() Dim R As Range Dim RR As Range For Each R In Selection.Cells If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then If RR Is Nothing Then Set RR = R Else Set RR = Application.Union(RR, R) End If End If Next R If Not RR Is Nothing Then RR.Select End If End Sub

UnSelectCurrentArea

Este procedimiento eliminará el Área que contiene la Célula Activa de la Selección.

Sub UnSelectCurrentArea() Dim Area As Range Dim RR As Range For Each Area In Selection.Areas If Application.Intersect(Area, ActiveCell) Is Nothing Then If RR Is Nothing Then Set RR = Area Else Set RR = Application.Union(RR, Area) End If End If Next Area If Not RR Is Nothing Then RR.Select End If End Sub


En Excel 2007, una combinación que usa la propiedad select y CutCopyMode, es posible restablecer todas las selecciones. Funcionó para mi caso de uso.

Application.CutCopyMode = xlCopy ActiveSheet.Range("A" & lngRow).Select

Saludos Madhur


Cells(1,1).Select

Te llevará a la celda A1, cancelando así tu selección existente.


Hay una manera de NO SELECCIONAR NADA que resuelva su problema.

  1. Crear una forma (un rectángulo)
  2. Nómbrelo en la Base de Datos de Formas >>> por ejemplo: "Listo"
  3. Consulte MYDOC.Shapes ("Listo") y cambie la visibilidad a False

Cuando desee que Excel SELECCIONE NADA, hágalo:

MYDOC.Shapes("Ready").visible=True MYDOC.Shapes("Ready").Select MYDOC.Shapes("Ready").visible=False

Esta OCULTAR la selección y nada aún seleccionado en su ventana MÁS: La palabra "Listo" se muestra en la parte superior izquierda de su Hoja.


Application.CutCopyMode = False


Puede establecer Application.ScreenUpdating = False y seleccionar una celda fuera de la vista y luego establecer el .ScreenUpdating en verdadero. Esto al menos no mostraría ninguna celda seleccionada en la vista actual.


Solo usa

SendKeys "{ESC}"

por lo tanto cancelando su selección.


Seleccione cualquier celda y desactive el modo copia cortada.

Range("A1").Select Application.CutCopyMode = False


Selection(1, 1).Select seleccionará solo la celda superior izquierda de su selección actual.


Si usa un botón para llamar al procedimiento de pegado,

intente activar el botón después de la operación. esto borra exitosamente la selección

sin

  • tener que perder el tiempo con cosas ocultas
  • seleccionando otra celda (que es exactamente lo contrario de lo que se pidió)
  • afectando el modo del portapapeles
  • teniendo el método hacky de presionar escape que no siempre funciona

HTH

Sub BtnCopypasta_Worksheet_Click() range.copy range.paste BtnCopypasta.Activate End sub

HTH


Intenté todas sus sugerencias, sin suerte, pero esta es una idea que funcionó para mí: seleccionar una celda fuera de su rango de selección (por ejemplo, AAA1000000) y luego seleccionar de nuevo A1

Rango ("AAA1000000"). Activar

Rango ("A1"). Activar

Chico


Tuve este problema con Excel 2013. Tenía el juego "congelar paneles", lo que causó el problema. El problema se resolvió cuando eliminé los paneles congelados.


Simplemente puede usar este código al final. (No use False)

Application.CutCopyMode = True