Mettre la sélection à zéro lors de la programmation Excel

quand je crée un graphique après avoir utilisé la portée.copie et de la plage.paste il laisse la plage de paste sélectionnée, et puis quand je crée un graphique quelques lignes plus tard, il utilise la sélection comme première série dans la parcelle. Je peux supprimer la série, mais est-il une façon plus élégante de le faire? J'ai essayé

Set selection = nothing

mais il ne me permet pas de définir la sélection. J'ai aussi essayé de sélection.clair, mais qui vient de nettoyer les dernières cellules qui ont été sélectionnés, et encore ajouté une série supplémentaire parcelle.

20
demandé sur braX 2008-11-15 20:18:46

15 réponses

Cells(1,1).Select

il vous mènera à la cellule A1, annulant ainsi votre sélection existante.

19
répondu shahkalpesh 2011-09-25 01:48:17
Application.CutCopyMode = False
24
répondu David 2012-05-24 11:53:15

il suffit d'utiliser

SendKeys "

annulant ainsi votre sélection.

8
répondu TheAxeman 2013-02-11 12:27:15

sélectionnez n'importe quelle cellule et désactivez cutcopymode.

Range("A1").Select
Application.CutCopyMode = False
7
répondu user3032537 2013-11-25 13:59:14

il y a un moyen de ne rien choisir qui résolvent votre problème.

  1. créer une forme (un rectangle)
  2. nommez-le dans la base de données Shapes > > > par exemple:" Ready "
  3. Reporter MYDOC.Formes ("prêt") et changer la visibilité à False

quand vous voulez que Excel, sélectionnez rien à faire:

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

cette masquer la sélection et rien encore sélectionné dans la fenêtre de votre PLUS: le mot "prêt" est affiché en haut à gauche de votre feuille.

4
répondu Miguel 2012-01-26 22:28:24

je ne pense pas que cela peut être fait. Voici du code copié sans aucune modification du site de Chip Pearson: http://www.cpearson.com/excel/UnSelect.aspx .

UnSelectActiveCell

cette procédure va enlever la cellule Active de la sélection.

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

cette procédure va enlever la zone contenant la cellule Active de la Sélection.

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
3
répondu Fionnuala 2018-05-08 21:48:18

, Vous pouvez simplement utiliser ce code à la fin. (Ne pas utiliser False)

Application.CutCopyMode = True
2
répondu RHH1095 2017-03-21 00:56:01

dans Excel 2007, une combinaison utilisant la propriété select et CutCopyMode, il est possible de réinitialiser toutes les sélections. Cela a fonctionné pour mon cas d'utilisation.

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

en ce qui Concerne Madhur

1
répondu Madhur Kashyap 2010-10-03 07:27:56

j'ai eu ce problème avec Excel 2013. J'ai eu "figer les volets", qui a provoqué le problème. Le problème a été résolu quand j'ai enlevé les volets figés.

1
répondu JustinMT 2016-07-20 16:46:33

vous pouvez définir le Application.ScreenUpdating = False et sélectionner une cellule hors de vue, puis définir le .ScreenUpdating à true. Cela ne montrerait au moins aucune des cellules sélectionnées dans la vue actuelle.

0
répondu Jaaahn 2012-06-03 04:23:08

Selection(1, 1).Select sélectionnera uniquement la case en haut à gauche de votre sélection actuelle.

0
répondu Patrick Honorez 2013-11-25 13:55:33

si vous utilisez un bouton pour appeler la procédure paste,

essayez d'activer le bouton après l'opération. ceci efface avec succès la sélection

sans

  • avoir à jouer avec des choses cachées
  • sélection d'une autre cellule (ce qui est exactement le contraire de ce qui a été demandé)
  • affectant le mode presse-papiers
  • avoir le hacky méthode de pressage escape qui ne fonctionne pas toujours

HTH

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

HTH

0
répondu Garreth Tinsley 2014-08-20 13:07:02

Essayé toutes vos suggestions, pas de chance , mais voici une idée qui a fonctionné pour moi sélectionnez une cellule hors de votre zone de sélection (par exemple AAA1000000) puis sélectionnez à nouveau L'A1

Range ("AAA1000000").Activer

Range ("A1").Activer

Gars

0
répondu Guy 2015-11-02 06:35:36

aucune des nombreuses réponses avec Application.CutCopyMode ou .Select n'a fonctionné pour moi.

mais j'ai trouvé une solution non postée ici, qui a fonctionné fantastiquement pour moi!

De StackExchange Superutilisateur: Excel VBA "Désélectionner" wanted

si vous voulez vraiment ' nothing selected`, vous pouvez utiliser VBA pour protéger la feuille à la fin de votre exécution de code, qui ne causera rien à être sélectionné. Vous pouvez soit l'ajouter à une macro, soit le mettre directement dans votre VBA.

Sub NoSelect()
   With ActiveSheet
   .EnableSelection = xlNoSelection
   .Protect
   End With
End Sub

dès que la feuille n'est pas protégée, le curseur active une cellule.

Espérons que cela aide quelqu'un avec le même problème!

0
répondu kdo53 2018-05-29 02:22:25

si vous sélectionnez une cellule dans une plage déjà sélectionnée, cela ne fonctionnera pas. Mais, en sélectionnant une plage en dehors de la sélection originale, vous éliminerez la sélection originale.

* la sélection originale * " ActiveSheet.portée ("A1: K10").Sélectionner

* Nouveaux Sélections * " Activesheet.Portée ("L1").Sélectionner

" * puis * ' Activesheet.Portée ("A1").Sélectionner

0
répondu Phil 2018-07-01 13:15:35