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.
15 réponses
Cells(1,1).Select
il vous mènera à la cellule A1, annulant ainsi votre sélection existante.
il suffit d'utiliser
SendKeys "
annulant ainsi votre sélection.
sélectionnez n'importe quelle cellule et désactivez cutcopymode.
Range("A1").Select
Application.CutCopyMode = False
il y a un moyen de ne rien choisir qui résolvent votre problème.
- créer une forme (un rectangle)
- nommez-le dans la base de données Shapes > > > par exemple:" Ready "
- 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.
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
, Vous pouvez simplement utiliser ce code à la fin. (Ne pas utiliser False)
Application.CutCopyMode = True
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
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.
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.
Selection(1, 1).Select
sélectionnera uniquement la case en haut à gauche de votre sélection actuelle.
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
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
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!
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