Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med Workbook_BeforeSave i Excel 2000

Postades av 2003-09-06 19:31:32 - Raderat konto, i forum microsoft office, Tråden har 5 Kommentarer och lästs av 889 personer

Hej!
Vet någon varför Workbook_BeforeSave beter sig olika om det körs genom att man sparar arbetsboken på normalt sätt, eller om arbetsboken sparas via kod i en modul?

I mitt Workbook_BeforeSave står följande:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("n26").FormulaR1C1 = "Hjälp"
Sheets("Blad2").Select
Range("n27").FormulaR1C1 = "Hjälp"
End Sub

Om jag nu sparar min arbetsbok via Arkiv-Spara, så körs alla programraderna ovan. D v s innan filen sparas skrivs texten "Hjälp" in i cell n26 i det aktiva kalkylbladet (Blad1). Därefter växlar koden till Blad2, där samma text skrivs in i cell n27.

I min modul1 finns en procedur som sparar arbetsboken:

Public Sub SaveAndGo()
ActiveWorkbook.Save
End Sub

Då jag kopplar en knapp på Blad1 till ovanstående procedur, och klickar på denna; blir resultatet att texten "Hjälp" hamnar i cell n26 och n27 på Blad1. Det görs alltså ingen växling till blad2. Det är som om raden "Sheets("Blad2").Select" hoppas över, bara för att arbetsboken sparas på ett annat sätt! Detta är en förenklad variant av mitt ursprungliga problem. Kan någon hjälpa mig förklara varför detta inträffar!

/Stefan



Svara

Sv: Problem med Workbook_BeforeSave i Excel 2000

Postades av 2003-09-06 22:50:56 - Niklas Jansson

Använd

Sheets("Blad2").Range("n27").FormulaR1C1

istället. En annan (i regel bättre) variant är att döpa om cellerna.


Svara

Sv: Problem med Workbook_BeforeSave i Excel 2000

Postades av 2003-09-07 10:47:02 - Raderat konto

Tack för ditt svar! Dock är originalbekymret värre än mitt exempel visar. I en applikation jag gjort måste det utföras en växling från ett kalkylblad till ett annat i samband med att filen sparas via en annan procedur. Problemet är att Workbook_BeforeSave inte kör denna växling, om save-kommandot skickas från en procedur, utan endast om arbetsboken sparas på vanligt sätt. Jag har tillfälligt arbetat runt bekymret, men jag är alltjämt förbryllad över att Workbook_BeforeSave verkar hoppa över vissa rader, om det initieras av Activeworkbook.save. Jag har fått detta problem vid tester i både Office 2000 och Office XP.


Svara

Sv: Problem med Workbook_BeforeSave i Excel 2000

Postades av 2003-09-07 10:51:35 - Andreas Hillqvist

Det är ineffektivt att använda Select objeketet. Selectobjektet är bara till för macros. När du programmerar bör du adresera celler direkt.

Om du visar koden som kan strula så kan vi hjälpa med den.


Svara

Sv: Problem med Workbook_BeforeSave i Excel 2000

Postades av 2003-09-07 16:29:57 - Niklas Jansson

Använd with istället.


With DittFörstaSheet
'Kod
End With

With DittAndraSheet
'Kod
End With

With DittTredjeSheet
'Kod
End With

Select är inte så där jätteineffektivt, det är bara mycket mer svårhanterligt. Testa att sätta en breakpoint på select-raden, så kan du ju se om den verkligen inte körs. Det där kan krångla på så många sätt. Den kanske byter blad på fel sätt för att du har missat en detalj.


Svara

Sv: Problem med Workbook_BeforeSave i Excel 2000

Postades av 2003-09-15 13:45:13 - Raderat konto

Tack för ert engegemang! Det har nu gjorts klart för mig från annat håll att detta är ett känt problem i Excel-VBA. Vissa rader, som Select, Sort, m fl, hoppas över i Workbook_BeforeSave, om arbetsboken sparas m h a en annan procedur. Problemet lär ha funnits sedan Office97. Man får helt enkelt hitta andra knep för att åstadkomma det man vill då arbetsboken sparas på detta sätt.


Svara

Nyligen

  • 14:07 Games
  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 983
27 965
271 784
779
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies