Makro-ongelma

Terve!

Yritän tehdä Excel-taulukkoon tallennusmakron siten, että työkirjasta tallentuu vain aktiivinen taulukko ja tiedoston nimeksi tulee taulukon yhdestä solusta löytyvä numerosarja. Olen saanut makron toimimaan muilta osin oikein, paitsi että tiedosto tallentuu mihin sattuu, ei siihen kansioon minkä olen makroon koettanut määritellä.

Tässä makro nykyisellään:

Range("A3").Select
ActiveSheet.Select
ActiveSheet.Copy
ChDir"M:datasiirtokansio"
ActiveWorkbook.SaveAs Filename:=ActiveCell,_
FileFormat:=xlExcel9795, Password:="", WriteResPassword:="",_ ReadOnlyRecommended:=True, CreateBackup:=False

Tiedoston nimeksi tulee solussa A3 oleva numerosarja, taulukko tallentuu muilta osin niinkuin pitääkin, mutta tuo polku (M:datasiirtokansio) jää huomiotta. Näyttää siltä, että taulukko tallentuu sinne, missä olen sattunut viimeksi käymään.

Osaako kukaan auttaa, olisin tosi kiitollinen vinkeistä!

Terkuin,
Kirsi
4307
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Hei Kirsi,
Voit antaa tuon polun muun numerosarjan yhteydessä. Korjaa neljäs rivi muotoon:

ChDir = "M:datasiirtokansio"

Ja viides rivi:

ActiveWorkbook.SaveAs Filename:=ChDir & ActiveCell,_

Tällöin annat tallennusnimeksi koko polun M:datasiirtokansio ja tähän merkkijonoon lisätään solun A3 numerosarja.

t. Hartza

>Range("A3").Select
ActiveSheet.Select
ActiveSheet.Copy
ChDir"M:datasiirtokansio"
ActiveWorkbook.SaveAs Filename:=ActiveCell,_
FileFormat:=xlExcel9795, Password:="", WriteResPassword:="",_ ReadOnlyRecommended:=True, CreateBackup:=False

Tiedoston nimeksi tulee solussa A3 oleva numerosarja, taulukko tallentuu muilta osin niinkuin pitääkin, mutta tuo polku (M:datasiirtokansio) jää huomiotta. Näyttää siltä, että taulukko tallentuu sinne, missä olen sattunut viimeksi käymään.

Osaako kukaan auttaa, olisin tosi kiitollinen vinkeistä!

Terkuin,
Kirsi

Äänestä
  • Huomenta Hartza,

    Kiitos neuvoistasi. Korjasin makron ehdottamaasi muotoon, mutta se ei jostain syystä vieläkään toimi. Kun käynnistän makron, neljännen rivin 'ChDir =' tulee maalatuksi ja ruudulle tulee virheilmoitus Compile error:Argument not optional.

    T: Kirsi

    Äänestä

Taisin keksiä ratkaisun tähän probleemaan:

Kun neljännen rivin korjaa näin:
DefaultDrive = "Mdatasiirtokansio"

ja viidennen rivin näin:
ActiveWorkbook.SaveAs Filename:=DefaultDrive & ActiveCell, _

...ja taulukko näyttää tallentuvan juuri sinne minne pitääkin. Kiitokset Hartzalle vinkistä, en olisi varmasti keksinyt tätä ilman apuasi.

T: Kirsi

Äänestä
  • Hep,

    Tuo ChDir taitaakin olla tosiaan oma funktionsa ja tästä syystä siihen ei voi sijoittaa merkkijonoa. Tuo DefaultDrive näyttää sen sijaan olevan kelpo merkkijonon sijoittamiseen...kai ;)

    Hartza

    Äänestä

Kommentoi aloitusta


Kirsi kirjoitti:

Terve!

Yritän tehdä Excel-taulukkoon tallennusmakron siten, että työkirjasta tallentuu vain aktiivinen taulukko ja tiedoston nimeksi tulee taulukon yhdestä solusta löytyvä numerosarja. Olen saanut makron toimimaan muilta osin oikein, paitsi että tiedosto tallentuu mihin sattuu, ei siihen kansioon minkä olen makroon koettanut määritellä.

Tässä makro nykyisellään:

Range("A3").Select
ActiveSheet.Select
ActiveSheet.Copy
ChDir"M:datasiirtokansio"
ActiveWorkbook.SaveAs Filename:=ActiveCell,_
FileFormat:=xlExcel9795, Password:="", WriteResPassword:="",_ ReadOnlyRecommended:=True, CreateBackup:=False

Tiedoston nimeksi tulee solussa A3 oleva numerosarja, taulukko tallentuu muilta osin niinkuin pitääkin, mutta tuo polku (M:datasiirtokansio) jää huomiotta. Näyttää siltä, että taulukko tallentuu sinne, missä olen sattunut viimeksi käymään.

Osaako kukaan auttaa, olisin tosi kiitollinen vinkeistä!

Terkuin,
Kirsi

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu