Avatar billede tma_oksboel Nybegynder
01. oktober 2002 - 08:38 Der er 12 kommentarer og
1 løsning

Brug af Undo i forbindelse med kørsel af modul

Hej

En simpel kodelinie som f.eks:

Application.Dialogs(xlDialogColumnWidth).Show

Kan bruges til at ændre kolonnebredden for de markerede kolonner. Men hvad med fortryd? Den ændring af kolonnebredder ligger ikke så man kan fortryde den (fortryd knappen er nedtonet, hvis der ellers ikke i forvejen var noget at fortryde).

Kan man sætte et eller andet til at registrere makrosekvenserne, således at man kan fortryde?

Torben
01. oktober 2002 - 08:40 #1
Application.Undo
Avatar billede tma_oksboel Nybegynder
01. oktober 2002 - 08:45 #2
NEJ, det er jo lige netop pointen at undo-listen er tom, så selv om man forsøger kodemæssigt kommer der en fejl.

Kontroller venligtst gættene...

Torben
01. oktober 2002 - 08:49 #3
Application.Undo virker i de fleste tilfælde, hvis ikke den gør det her, så må du jo aflæse kolonnebredden inden du lader den ændre.
Avatar billede tma_oksboel Nybegynder
01. oktober 2002 - 08:53 #4
Forestil dig at brugeren markerer 20 kolonner, der hver har forskellig bredde. Så skal du til at have et array der registrerer bredden for hver kolonne. Undo-faciliten er heller ikke kun ønskelig i forbindelse med denne makro, men mere genelt vil det være smart.

Torben
Avatar billede Slettet bruger
01. oktober 2002 - 09:02 #5
Prøv at kigge på denne her:
http://www.erlandsendata.no/english/downloads/programming.htm

Det sidste eksempel på siden.
Avatar billede tma_oksboel Nybegynder
01. oktober 2002 - 09:11 #6
tjoe, det er da en afhjælpning, men stadig ikke den helt generelle enabling af undo, som generelt kan undo en makro. Dette eksempel (blackadder) skal registrere celleindholdet inden man ændrer det, hvilket jo f.eks. betyder at har man en makro til kolonnebredder skal det håndteres anderledes.
Men indtil videre en anvendelig løsning, sålænge 'the crownjuvel' ikke er fundet.

Torben
Avatar billede Slettet bruger
01. oktober 2002 - 12:07 #7
Det du søger kan vistnok kun lade sig gøre ad omveje (se tidligere svar).

Excel allokerer som standard kun RAM til 16 'UNDO' niveauer. Du kan, ved at pille i registreringsdatabasen (PÅ EGET ANSVAR) sætte dette tal op. Microsoft anbefaler et maksimum på 100.
Se:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q211922&LN=EN-US

Dette ændrer dog stadigvæk ikke i det faktum at Excel ikke generelt understøtter undo af makroer, andet end hvis du selv implementerer det.
Avatar billede bak Forsker
01. oktober 2002 - 12:56 #8
Det er rigtigt, blackadder og enhver makro vil samtidig nulstille fortrydbufferen, således at det der blev indtastet/gjort før makroen kørte heller ikke kan fortrydes.
Avatar billede tma_oksboel Nybegynder
01. oktober 2002 - 13:00 #9
Jamen så lukker vi da ballet med en skuffelse over, at der ikke lige var den option man synes at have brug for. Men alt i alt er løsningen som blackadder havde fundet frem anvendelig. Point går derfor til ham.

Torben
01. oktober 2002 - 13:02 #10
Det er lidt sjovt, for det virker anderledes godt i Word, hvor du kan bruge ActiveDocument.Undo (times) - men i Excel findes Undo på Applications niveau og ikke ActiveWorkbook (i Word findes Undo ikke på Applications niveau) hmmm
01. oktober 2002 - 13:11 #11
Her findes også nogle forskellige udgaver af Undo
http://search.atomz.com/search/?sp-q=undo&sp-a=000336ae-sp00000000
Avatar billede bak Forsker
01. oktober 2002 - 13:23 #12
Jeg kender også en metode, der kan fortyde 1 trin.
En excel4 makro kan åbenbart fortrydes.
denne makro sætter kolonnebredden i aktiv kolonne til 50. dette kan fortrydes.


kolonnebredde
=COLUMN.WIDTH(50)
=RETURN()
Avatar billede bak Forsker
01. oktober 2002 - 15:44 #13
Flemming -> har du bemærket at hvis du sætter Application.Undo i starten af makroen, så udfører linien et undo, altså sletter/tilbagefører det du lige har skrevet inden du startde makroen ?
den virker altså lidt omvendt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester