Tekstitiedosto-ongelma makrossa

Nyt tuli vanhalle koodaajalle ongelma mitä en ainakaan millään helpolla kostilla selvitä.

Laskentataulukko pitäisi tallentaa tekstitiedostona (sarkainerotin). Homma toimii hyvin taulukosta käsin suoritettuna. Mutta homma ei toimi enää makrolla suoritettuna.

Päivämäärät muuttuvat muotoon 18/03/2005, kun alkuperäinen on 18.3.2005. OK, tämän ongelman sain kuntoon kikkailulla.

Toinen ongelma on että jos solussa on pilkku luvussa tai merkkijonossa niin tekstitiedostossa tämä tietue on lainaismerkeissä!

Pitäisi siis saada tarkalleen samanlainen tekstitiedosto makrolla kuin käsinkin.

Kokeilkaa: tallentakaa taulukko, jossa on päivämääriä, desimaali- ja kokonaislukuja, käsin tekstiedostoksi ja nauhoittakaa se makroksi. Katsokaa tekstitiedostoa. Ajakaa makro samasta taulukosta ja katsokaa tätä tekstitiedostoa - eivät ole samanlaisia!

Onko tähän ongelmaan ratkaisua?

Jos en selvitä tätä ongelmaa on maineeni koodaajana ikuisesti mennyttä :(
6699
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Sub Tallenna()
ActiveWorkbook.SaveAs Filename:="C:\Koe.txt", FileFormat:=xlText, Local:=True
End Sub

Äänestä
  • En olisi kokenut koodaaja jos en päivittäin ja projektikohdittain käyttäisi helppejä. Kokeneen koodaajan tuntee nimen omaan siitä että hän käyttää jatkuvasti helppejä.

    Excelissä on sadoittain objekteja, joihin liittyy satoja menetelmiä ja ominaisuuksia ja kaikkiin näihin liittyy kymmeniä parametrejä joilla voi olla kymmeniä muuttujia, - siis inhimillisesti katsoen ääretön määrä eri kombinaatteja joita ei voi oppia kuin tärkeimmät. Tähän kun otetaan mukaan muiden ohjelmien objektit ja ohjelmointirajapinnat ( ADO, DAO, Oracle SQL....) niin kusessa ollaan.....

    Epätoivoissana luin kaikki helpit mitä ikinä löysin ko. menetelmästä. Vaan en löytänyt esittämääsi parametriä. Mikä versio on sinulla?

    Paljon kiitoksia sinulle kuitenkin, testaan heti tiistaina kun menen töihin.

    P.S Nyt olen kotona enkä voi testata, mutta luulen että helpeistä ei löydy SavaAs- menetelmälle parametriä Local. Siis helpeissä. (ainakaan siinä versiossa jota käytän) sen verran paljon katselin ko. menetelmään liittyviä helppejä että olisi pitänyt osua kohdalle.

    Äänestä

  • Kokenut koodaaja kirjoitti:

    En olisi kokenut koodaaja jos en päivittäin ja projektikohdittain käyttäisi helppejä. Kokeneen koodaajan tuntee nimen omaan siitä että hän käyttää jatkuvasti helppejä.

    Excelissä on sadoittain objekteja, joihin liittyy satoja menetelmiä ja ominaisuuksia ja kaikkiin näihin liittyy kymmeniä parametrejä joilla voi olla kymmeniä muuttujia, - siis inhimillisesti katsoen ääretön määrä eri kombinaatteja joita ei voi oppia kuin tärkeimmät. Tähän kun otetaan mukaan muiden ohjelmien objektit ja ohjelmointirajapinnat ( ADO, DAO, Oracle SQL....) niin kusessa ollaan.....

    Epätoivoissana luin kaikki helpit mitä ikinä löysin ko. menetelmästä. Vaan en löytänyt esittämääsi parametriä. Mikä versio on sinulla?

    Paljon kiitoksia sinulle kuitenkin, testaan heti tiistaina kun menen töihin.

    P.S Nyt olen kotona enkä voi testata, mutta luulen että helpeistä ei löydy SavaAs- menetelmälle parametriä Local. Siis helpeissä. (ainakaan siinä versiossa jota käytän) sen verran paljon katselin ko. menetelmään liittyviä helppejä että olisi pitänyt osua kohdalle.

    Tossa VBA helpistä kopioitu SaveAs ohjeistus

    SaveAs Method
    See Also Applies To Example Specifics
    SaveAs method as it applies to the Chart and Worksheet objects.

    Saves changes to the chart or worksheet in a different file.

    expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodepage, TextVisualLayout, Local)

    expression Required. An expression that returns one of the above objects.

    Filename Optional Variant. A string that indicates the name of the file to be saved. You can include a full path; if you don't, Microsoft Excel saves the file in the current folder.

    FileFormat Optional Variant. The file format to use when you save the file. For a list of valid choices, see the FileFormat property. For an existing file, the default format is the last file format specified; for a new file, the default is the format of the version of Excel being used.

    Password Optional Variant. A case-sensitive string (no more than 15 characters) that indicates the protection password to be given to the file.

    WriteResPassword Optional Variant. A string that indicates the write-reservation password for this file. If a file is saved with the password and the password isn't supplied when the file is opened, the file is opened as read-only.

    ReadOnlyRecommended Optional Variant. True to display a message when the file is opened, recommending that the file be opened as read-only.

    CreateBackup Optional Variant. True to create a backup file.

    AddToMru Optional Variant. True to add this workbook to the list of recently used files. The default value is False.

    TextCodePage Optional Variant. Not used in U.S. English Microsoft Excel.

    TextVisualLayout Optional Variant. Not used in U.S. English Microsoft Excel.

    Local Optional Variant. True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically US English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).



    SaveAs method as it applies to the Workbook object.

    Saves changes to the workbook in a different file.

    expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

    expression Required. An expression that returns one of the above objects.

    Filename Optional Variant. A string that indicates the name of the file to be saved. You can include a full path; if you don't, Microsoft Excel saves the file in the current folder.

    FileFormat Optional Variant. The file format to use when you save the file. For a list of valid choices, see the FileFormat property. For an existing file, the default format is the last file format specified; for a new file, the default is the format of the version of Excel being used.

    Password Optional Variant. A case-sensitive string (no more than 15 characters) that indicates the protection password to be given to the file.

    WriteResPassword Optional Variant. A string that indicates the write-reservation password for this file. If a file is saved with the password and the password isn't supplied when the file is opened, the file is opened as read-only.

    ReadOnlyRecommended Optional Variant. True to display a message when the file is opened, recommending that the file be opened as read-only.

    CreateBackup Optional Variant. True to create a backup file.

    AccessMode Optional XlSaveAsAccessMode.

    XlSaveAsAccessMode can be one of these XlSaveAsAccessMode constants.
    xlExclusive (exclusive mode)
    xlNoChange default (don't change the access mode)
    xlShared (share list)
    If this argument is omitted, the access mode isn't changed. This argument is ignored if you save a shared list without changing the file name. To change the access mode, use the ExclusiveAccess method.


    ConflictResolution Optional XlSaveConflictResolution.

    XlSaveConflictResolution can be one of these XlSaveConflictResolution constants.
    xlUserResolution (display the conflict-resolution dialog box)
    xlLocalSessionChanges (automatically accept the local user's changes)
    xlOtherSessionChanges (accept other changes instead of the local user's changes)
    If this argument is omitted, the conflict-resolution dialog box is displayed.


    AddToMru Optional Variant. True to add this workbook to the list of recently used files. The default value is False.

    TextCodePage Optional Variant. Not used in U.S. English Microsoft Excel.

    TextVisualLayout Optional Variant. Not used in U.S. English Microsoft Excel.

    Local Optional Variant. True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically US English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).

    Äänestä

  • Kunde kirjoitti:

    Tossa VBA helpistä kopioitu SaveAs ohjeistus

    SaveAs Method
    See Also Applies To Example Specifics
    SaveAs method as it applies to the Chart and Worksheet objects.

    Saves changes to the chart or worksheet in a different file.

    expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodepage, TextVisualLayout, Local)

    expression Required. An expression that returns one of the above objects.

    Filename Optional Variant. A string that indicates the name of the file to be saved. You can include a full path; if you don't, Microsoft Excel saves the file in the current folder.

    FileFormat Optional Variant. The file format to use when you save the file. For a list of valid choices, see the FileFormat property. For an existing file, the default format is the last file format specified; for a new file, the default is the format of the version of Excel being used.

    Password Optional Variant. A case-sensitive string (no more than 15 characters) that indicates the protection password to be given to the file.

    WriteResPassword Optional Variant. A string that indicates the write-reservation password for this file. If a file is saved with the password and the password isn't supplied when the file is opened, the file is opened as read-only.

    ReadOnlyRecommended Optional Variant. True to display a message when the file is opened, recommending that the file be opened as read-only.

    CreateBackup Optional Variant. True to create a backup file.

    AddToMru Optional Variant. True to add this workbook to the list of recently used files. The default value is False.

    TextCodePage Optional Variant. Not used in U.S. English Microsoft Excel.

    TextVisualLayout Optional Variant. Not used in U.S. English Microsoft Excel.

    Local Optional Variant. True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically US English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).



    SaveAs method as it applies to the Workbook object.

    Saves changes to the workbook in a different file.

    expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

    expression Required. An expression that returns one of the above objects.

    Filename Optional Variant. A string that indicates the name of the file to be saved. You can include a full path; if you don't, Microsoft Excel saves the file in the current folder.

    FileFormat Optional Variant. The file format to use when you save the file. For a list of valid choices, see the FileFormat property. For an existing file, the default format is the last file format specified; for a new file, the default is the format of the version of Excel being used.

    Password Optional Variant. A case-sensitive string (no more than 15 characters) that indicates the protection password to be given to the file.

    WriteResPassword Optional Variant. A string that indicates the write-reservation password for this file. If a file is saved with the password and the password isn't supplied when the file is opened, the file is opened as read-only.

    ReadOnlyRecommended Optional Variant. True to display a message when the file is opened, recommending that the file be opened as read-only.

    CreateBackup Optional Variant. True to create a backup file.

    AccessMode Optional XlSaveAsAccessMode.

    XlSaveAsAccessMode can be one of these XlSaveAsAccessMode constants.
    xlExclusive (exclusive mode)
    xlNoChange default (don't change the access mode)
    xlShared (share list)
    If this argument is omitted, the access mode isn't changed. This argument is ignored if you save a shared list without changing the file name. To change the access mode, use the ExclusiveAccess method.


    ConflictResolution Optional XlSaveConflictResolution.

    XlSaveConflictResolution can be one of these XlSaveConflictResolution constants.
    xlUserResolution (display the conflict-resolution dialog box)
    xlLocalSessionChanges (automatically accept the local user's changes)
    xlOtherSessionChanges (accept other changes instead of the local user's changes)
    If this argument is omitted, the conflict-resolution dialog box is displayed.


    AddToMru Optional Variant. True to add this workbook to the list of recently used files. The default value is False.

    TextCodePage Optional Variant. Not used in U.S. English Microsoft Excel.

    TextVisualLayout Optional Variant. Not used in U.S. English Microsoft Excel.

    Local Optional Variant. True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically US English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).

    Versiossa 2000 ja vanhemmissa ei ole ko. parametriä!

    Äänestä

  • Kokenut koodaaja kirjoitti:

    Versiossa 2000 ja vanhemmissa ei ole ko. parametriä!

    Kokeneena koodaajana et tietenkään käytä makronauhoitinta...
    Tiedäthän toki, ettei nauhoitettu makro aina toimi niinkuin sen pitää.
    Ei muuta kuin teet makron, joka etsii kirjoitettavan alueen rajat ja sitten kirjoittaa tekstitiedoston rivi riviltä.
    VBA:lla sitten muotoilet (format)kirjoitettavan solun tekstin siihen muotoon kuin haluat!
    Itselläni ei ole ollut ongelmia kirjoittaa juuri semmoista tekstitietoa kuin haluan :)

    @Kunde

    Äänestä

  • Kunde kirjoitti:

    Kokeneena koodaajana et tietenkään käytä makronauhoitinta...
    Tiedäthän toki, ettei nauhoitettu makro aina toimi niinkuin sen pitää.
    Ei muuta kuin teet makron, joka etsii kirjoitettavan alueen rajat ja sitten kirjoittaa tekstitiedoston rivi riviltä.
    VBA:lla sitten muotoilet (format)kirjoitettavan solun tekstin siihen muotoon kuin haluat!
    Itselläni ei ole ollut ongelmia kirjoittaa juuri semmoista tekstitietoa kuin haluan :)

    @Kunde

    >Kokeneena koodaajana et tietenkään käytä makronauhoitinta<

    Helvetissä käytän, aina kun mahdollista kun siitä on hyötyä. Mutta tämä nykyinen ongelma tuli käyttäjältä joka oli nauhoittanut ja kysyi minulta vastausta ongelmaan.

    >Ei muuta kuin teet makron, joka etsii kirjoitettavan alueen rajat ja sitten kirjoittaa tekstitiedoston rivi riviltä.<

    Siis suoraan tiedostoon?
    Open "Kukkuluuruu.txt" For Output As #1
    ja niin edelleen?

    No, minä kyllä etsin alunperin yksinkertaista ratkaisua.

    Äänestä

Kommentoi aloitusta


Kokenut koodaaja kirjoitti:

Nyt tuli vanhalle koodaajalle ongelma mitä en ainakaan millään helpolla kostilla selvitä.

Laskentataulukko pitäisi tallentaa tekstitiedostona (sarkainerotin). Homma toimii hyvin taulukosta käsin suoritettuna. Mutta homma ei toimi enää makrolla suoritettuna.

Päivämäärät muuttuvat muotoon 18/03/2005, kun alkuperäinen on 18.3.2005. OK, tämän ongelman sain kuntoon kikkailulla.

Toinen ongelma on että jos solussa on pilkku luvussa tai merkkijonossa niin tekstitiedostossa tämä tietue on lainaismerkeissä!

Pitäisi siis saada tarkalleen samanlainen tekstitiedosto makrolla kuin käsinkin.

Kokeilkaa: tallentakaa taulukko, jossa on päivämääriä, desimaali- ja kokonaislukuja, käsin tekstiedostoksi ja nauhoittakaa se makroksi. Katsokaa tekstitiedostoa. Ajakaa makro samasta taulukosta ja katsokaa tätä tekstitiedostoa - eivät ole samanlaisia!

Onko tähän ongelmaan ratkaisua?

Jos en selvitä tätä ongelmaa on maineeni koodaajana ikuisesti mennyttä :(

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