Makro lakannut toimimasta

-Pasi-

Minulla on eräässä konversio-ohjelmassa makro, jolla työkirjan välilehdillä olevat koodit poistetaan. Tämä on tarpeen siksi että erään sovelluksen vanhemmassa versiossa koodia on jokaisen välilehden mukana mutta uudemmassa versiossa koodi on kaikille välilehdille yhteinen (koodi sijaitsee ThisWorkbook) ja vanhan version välilehdet on muokattava uuteen sopivaksi. Koodinpoistokoodi on alla olevan mukainen:

Sub Sub_PoistaTaulukonKoodit()

' Poistetaan taulukoiden moduulissa olevat koodit
' - By Cpearson -

Dim sSheet As Object, strName As String

For Each sSheet In Sheets
Select Case UCase(sSheet.Name)
Case "2004", "2005", "2006", "2007"
strName = sSheet.CodeName

With ActiveWorkbook.VBProject.VBComponents(strName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
End Select
Next sSheet
End Sub

Aiemmin tämä on toiminut moitteetta mutta nyt ohjelman suoritus kaatuu kohtaan "With ActiveWorkbook.VBProject.VBComponents(strName).CodeModule" virheilmoituksella "Run-time Error '1004' Visual Basic-projektin ohjelmallista käyttämistä ei ole tunnistettu luotettavaksi".
Nyt kun klikkaa "Debug" ja yrittää suorittaa rivin, tulee herja "Run-time error '1004' Method 'VBProject of object '_Workbook' failed"

En pariin vuoteen ole yllä olevaa koodia tarvinnut, ja mikä edellisestä kerrasta on muuttunut niin koneeseen on pitänyt palauttaa tehdasasetukset ja asentaa kaikki ohjelmat uudestaan. Excelin versio onsama kuin ennenkin, eli 2002.

Olisiko ongelma nyt siinä että Visual Basicin "Tools" -> "References" puuttuu joku tarpeellinen palikka?

5

266

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • -Pasi-

      Löysin tuon samaisen koodin jossa alussa oli huomautuksena:

      Needs Reference Set To _"Microsoft Visual Basic For Applications Extensibility"

      mutta tuollaisessa kohtaa minulla täppä kyllä on. Itse asiassa minulla on "Microsoft Visual Basic For Applications Extensibility 5.3", eli ilmeisesti joku versionumero lopussa.

    • laita se suurimmalla numerolla oleva referenssi käyttöön.
      Joku referenssi siiinä koneessa on muuttunut. Jos referenssi puuttuu niin se herjaa puuttumista. Ehkäåä se koodi olisi parasta olla normaalimoduulissa eikä This Workbook moduulissa?

      • -Pasi-

        Kiitos Kunde vastauksesta :)

        Nyt toisella koneella löysin tosiaan tuolta viittauksista "Microsoft Visual Basic For Applications Extensibility" sekä "Microsoft Visual Basic For Applications Extensibility 5.3" (ei tietenkään peräkkäin aakkosjäjestyksessä listalla) ja testasin koodia joka tässä koneessa toimikin olipa täppä kummassa viittauksessa tahansa. Kokeilen illalla vielä toisella koneella onko siinä vaikutusta missä kohtaa täppä on. Tässä koneessa jossa koodi toimii (Excel 97), on se harmi että virustorjunta kuvittelee koodin olevan virus ja tuhoaa sen kyselemättä ;)

        Yllä oleva koodinpoistokoodi toki on moduulissa, mutta poistettavaa ja korvattavaa koodia en moduuliin voi laittaa koska tapahtumat ovat Worksheet_BeforeDoubleClick ja Worksheet_BeforeRightClick.

        Alun perin DoubleClick- ja RightClick koodit olivat välilehden mukana, mutta kun välilehti kopioitiin uudeksi niin myös koodi kopioitui. Tämän takia muutin koodin ThisWorkbookiin ettei sama koodi turhaan toistuisi ja kasvattaisi tiedostokokoa. Välilehtiä yhteen tiedostostoon tulee yksi lisää periaatteessa vuosittain ja tiedostoja on himpun alle kaksi tuhatta.

        Worksheet_BeforeDoubleClick ja Worksheet_BeforeRightClick tapahtumat eivät tee muuta kuin käynnistävät toisessa työkirjassa olevan makron. Tämä siksi että noiden parin tuhannen työkirjan koodi olisi mahdollisimman lyhyt ja tiedostokoko mahdollisimman pieni.


    • hehehe...
      ehkäpä Kundepuu (alias Kunde auttaa sua kaupallisesti -maybe too heavy to free)...

      • -Pasi-

        En kerta kaikkiaan keksinyt miksi konvertointi ei toimi 2002:ssa joten käytin oikotietä ja asensin Excel 97 koneelle ja sillä sain konvertoinnin tehtyä. Ihmetyttää vaan miksi ei 2002 toiminut kun aikaisemmin se siinä on toiminut.

        Kiitos Kunde vastauksistasi.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Janni Tikkanen ohjattiin miesten pukuhuoneeseen

      Vai olisko sittenkin Janne Tikkanen? Jos siellä jalkojen välissä on miesten killukkeet, mieshän tämä Janni on. Ja kuuluu
      Kajaani
      86
      2247
    2. Keskisarja loisti A-studiossa, vauhkoontunut Sofia Virta munasi itsensä

      Keskisarja taas puhui 100% faktaa maahanmuuttoon liittyen. Kokoomuksen Kaumalta tuli pari hyvää puheenvuoroa, joskin muu
      Maailman menoa
      433
      2140
    3. Rakastan ja ikävöin sinua

      Ei helpota tämä ikävä millään. Pelkäsin että tämä ajanjakso tulee olemaan juuri näin vaikea. Siksi halusin ennen tätä pä
      Ikävä
      77
      1442
    4. Tiedän ettet tehnyt tahallasi pahaa

      Asiat tapahtuivat, ristiriidat ovat meitä vahvempia. Olemmeko me niin vahvoja, että selviämme tästäkin vielä? Aika paljo
      Ikävä
      110
      1420
    5. Vihjeketju naisille

      Kirjoita tähän vihjeesi kaivatullesi.
      Ikävä
      67
      1313
    6. Venäläistä sukellusvenettä jahdataan Norjassa Sukellusvenettä on etsitty sunnuntaista lähtien.

      Venäläistä sukellusvenettä jahdataan Norjassa Sukellusvenettä on etsitty sunnuntaista lähtien. Norjassa on käynnissä ve
      NATO
      107
      1065
    7. Haluatko tietää totuuden?

      Olen kyllästynyt sinuun. Et herätä enää mielenkiintoa. Samat jutut x 100. Kuten narskuilla aina. Samalla tunnen myötätun
      Ikävä
      81
      1032
    8. Teräväkielinen Virta jauhotti totaalisesti sössöttävän Keskisarjan

      Harvoin on noin suvereenia jauhotusta A-studiossa nähty. Ja minä äänestän demareita, joita ei oltu paikalle edes kutsut
      Maailman menoa
      257
      1023
    9. Sofia Virta pyyhkii pöytää Keskisarjalla A studiossa

      Hurjaa on meno. Keskisarja ihan kanveesissa.
      Perussuomalaiset
      269
      1017
    10. Sä olet epävakaa

      tai ainakin yrität onnistuneesti vaikuttaa siltä. Ei sun kanssa uskalla ruveta yhtään mihinkään, menis hommat ojasta all
      Ikävä
      15
      952
    Aihe