2012-09-03 22:07:34 +0000 2012-09-03 22:07:34 +0000
9
9

Excel VBA "Unselect" gezocht

Ik zou graag willen dat na het uitvoeren van mijn VBA het eindresultaat geen selectie meer bevat - dat geen enkele cel of bereik op een blad gekleurd is (als het bereik geselecteerd was) of in een vetomlijnd vak staat (alles wat geselecteerd was). Doel: de klant een keurig eindresultaat te geven.

Ik heb gezocht en kan niet vinden hoe ik dit moet doen. Er is een Unselect volgens MS, maar die lijkt niets te doen.

Antwoorden (8)

10
10
10
2013-11-25 13:31:37 +0000

Selecteer een cel en schakel CutCopy uit:

Range("A1").Select
  Application.CutCopyMode = False
2
2
2
2012-09-05 18:38:48 +0000

Excel heeft altijd iets geselecteerd. Een oplossing is nodig. Het selecteren van een cel buiten het scherm zal de focus daar zetten, dus dat werkt op zichzelf niet. Deze code plaatst de cursor buiten het scherm en scrollt dan het blad terug naar boven om A1 te zien.

Sub NoSelect()    
  Range("BB100").Select
  ActiveWindow.SmallScroll up:=100
  ActiveWindow.SmallScroll ToLeft:=44
End Sub

Als je echt ‘niets geselecteerd’ wilt hebben, kun je VBA gebruiken om het blad aan het eind van je code-uitvoering af te schermen, waardoor er niets geselecteerd wordt. Je kunt dit toevoegen aan een macro of het direct in je VBA zetten.

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

Zodra het blad onbeschermd is, zal de cursor een cel activeren.

2
2
2
2014-09-04 13:06:33 +0000

Er is een lastige manier om het te doen.

Maak een object zoals een knop. Selecteer deze knop, verberg hem dan, en er zal geen cel geselecteerd worden.

ActiveSheet.Shapes("Button 1").Visible = True

ActiveSheet.Shapes("Button 1").Select

ActiveSheet.Shapes("Button 1").Visible = False

Dat is het.

1
1
1
2018-12-20 12:44:14 +0000

Zeer oude vraag, maar mijn antwoord ter referentie:

Je kunt

With ActiveSheet
    .EnableSelection = xlNoSelection
    .Protect
End With
``` gebruiken
1
1
1
2015-02-22 19:00:40 +0000

Afhankelijk van de grootte van uw selectie, om artefacten te verwijderen (ik weet niet of dit ook een probleem is in 2013 Excel, maar op de Mac was het een constante pijn voor mij) kunt u gewoon cel voor cel doorlussen en elke cel selecteren.

1
1
1
2016-04-11 07:18:46 +0000

Door het bijwerken van het scherm uit te schakelen voordat een cel wordt geselecteerd, wordt het scrollen naar geselecteerde cellen tijdelijk uitgeschakeld.

Deze code controleert welke cellen momenteel zichtbaar zijn en selecteert de eerste cel onder het zichtbare bereik die niet in beeld is. Bijvoorbeeld, als ik het probeer: Zichtbaar bereik is A1:BC79, dus deze code selecteert A80 en als je naar beneden en naar rechts scrollt en het opnieuw uitvoert, dan kiest Excel de eerste cel die NIET zichtbaar is onder de eerste zichtbare kolom.

Dim r As Range Application.ScreenUpdating = False Set r = Application.ActiveWindow.VisibleRange r(r.Cells.Count + 1).Select Application.ScreenUpdating = True
1
1
1
2012-09-05 17:56:56 +0000

Het enige antwoord is valsspelen.

Verberg kolom A en rij 1

Plaats cursor in A1. Er zal een klein puntje in de hoek van B2 staan

0
0
0
2016-10-11 16:29:56 +0000

Gebruik een truc: Voeg een vorm toe, selecteer hem dan en verberg hem.

Broncode voor dit is in antwoord op een andere vraag op deze site.