Application.Wait Now

Pasi

Terve,

Exelillä tehdyssä ohjelmassani on "peukaloidenpyöritysrivi" eli rivi joka ei tee mitään muuta kuin odottaa tietyn ajan. Rivi on seuraavanlainen:

Application.Wait Now TimeValue("0:00:01")

Kyseinen rivi saa ohjelman odottamaan yhden sekunnin, mutta entäpä jos haluan ohjelman odottavan vaikkapa vain puoli sekuntia, onnistuuko se?

-Pasi-

7

487

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • paavali50

      Yritin sellaista että jakais sen sekunnin kahdella, mutta ei onnistu, tekee molemmat samaan aikaan.
      Sub Makro1()
      [A1] = 1
      Application.Wait Now TimeValue("0:00:01") / 2
      [A10] = 1
      End Sub

      Tämä kyllä onnistuu, tekee toisen viiden sekunnin kuluttua.
      Sub Makro1()
      [A1] = 1
      Application.Wait Now TimeValue("0:00:10") / 2
      [A10] = 1
      End Sub

      Ilmeisesti TimeValue ei ymmärrä sekuntia pienempää aikaa

      • Pasi

        Kiitos kuitenkin yrityksestä!


    • M.L.

      Yksi ratkaisu ongelmaan olisi tehdä silmukka, joka ei tee mitään:

      Alku = Timer
      Do While Timer < Alku 0.5
      Loop

      Edellä oleva koodi suorittaa tyhjää silmukkaa puolen sekunnin ajan. Esimerkissä "Alku" on single-tyyppinen muuttuja.

      Timer-funktio palauttaa keskiyöstä kuluneen ajan sekunnin sadasosan tarkkuudella. Siispä yllä oleva koodi ei toimi oikein, jos vuorokausi vaihtuu juuri silmukan suorituksen aikana.


      - Mika

      • Pasi

        Joo, tuota täytyykin kokeilla. Aika sattumaa olisi jos koodin suoritus sattuisi juuri puolen yön aikaan ja vieläpä sekunnin sadasosan tarkkuudella ja sitä paitsi ei ole niin älyttömän paha juttu vaikka tuollainen sattuma tulisikin.

        Kiitos!


    • Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      ja koodissa sitten käytät
      sleep 500
      1000 millisekuntia=1 s

      • Pasi

        Juuri tuollaista koodia etsinkin, yksinkertaista ja "helppokäyttöistä". Harmi vain että Excel ilmoitti selkeästi:

        "Käännösvirhe: Vakioita, kiinteämittaisia merkkijonoja, taulukoita ja Declare-lausekkeita ei voi käyttää objektimoduulien Public-jäseninä"

        En vielä kokeillut toimiiko koodi jos se on jossakin modulissa, nyt yritin laittaa sitä UserFormin koodiin. Pärjään kyllä tuolla Loop-koodillakin.

        Kiitos ja kumarrus!

        -Pasi-


      • Pasi kirjoitti:

        Juuri tuollaista koodia etsinkin, yksinkertaista ja "helppokäyttöistä". Harmi vain että Excel ilmoitti selkeästi:

        "Käännösvirhe: Vakioita, kiinteämittaisia merkkijonoja, taulukoita ja Declare-lausekkeita ei voi käyttää objektimoduulien Public-jäseninä"

        En vielä kokeillut toimiiko koodi jos se on jossakin modulissa, nyt yritin laittaa sitä UserFormin koodiin. Pärjään kyllä tuolla Loop-koodillakin.

        Kiitos ja kumarrus!

        -Pasi-

        Joo ei toimi jos Public muuttuja lomakkeella, joten
        moduuliin...
        Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

        ja lomakkeella voit sitten käyttää esim.
        sleep 500


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

    Luetuimmat keskustelut

    1. Anteeksi mies

      En vaan osaa kohdata sinua ja olla normaali. En tiedä mikä vaivaa. Samaan aikaan tekee mieli tulla lähelle ja kuitenkin
      Ikävä
      58
      10407
    2. Mietin aina vain

      Minä niin haluaisin nähdä sinut. Ei tuo yhden ainoan kuvan katsominen paljon helpota... Miksi sinä et voisi olla se roh
      Tunteet
      17
      4361
    3. Hetken jo luulin, että en ikävöi sinua koko aikaa

      Mutta nyt on sitten taas ihan hirveä ikävä jotenkin. Tiedätköhän sinä edes, kuinka peruuttamattomasti minä olen sinuun r
      Ikävä
      32
      3646
    4. Kysely lieksan miehille

      Olemme tässä pohtineet tällaista asiaa, että miten on. Tästä nyt on paljon ollut juttua julkisuudessakin aina sanomaleht
      Lieksa
      107
      3054
    5. Outoa että Trump ekana sanoutui irti ilmastosopimuksesta

      kun Kaliforniaa riepottelee siitä johtuvat tuhoisat maastopalot. Hirmumyrskytkin ovat USA:ssa olleet tuhoisia.
      Maailman menoa
      436
      2176
    6. Palstan henkisesti sairaat ja lihavat

      Täällä on sairaita, työttömiä ihmisiä kirjoittelemassa joilla ei ole tarkoituksena kuin satuttaa ihmisiä. Jos eksyt pals
      Ikävä
      114
      2160
    7. Saan kengurakkaan kotiin viikon päästä

      Mitä tapahtui? Martina hehkutti tätä stoorissaan reilu viikko sitten, mutta eipä aussimiestä Suomessa näkynyt, vaan tapa
      Kotimaiset julkkisjuorut
      250
      1587
    8. FinFamin ryhmät

      Älkää hyvät ihmiset luottako tähän tahoon. Ryhmiä on, mutta eivät ne toimi. Ihmisiä savustetaan ulos, vaikka näissä piir
      Salo
      0
      1381
    9. Osmo Peltola voitti ansaitusti Kultaisen Venlan - Kirvoitti yleisöltä mahtavan reaktion!

      JEE, onnea Osmo! Osmo Peltola voitti Vuoden esiintyjän Kultainen Venla -palkinnon. Isä-Peltsin ja Osmon luontoseikkailu
      Suomalaiset julkkikset
      77
      1220
    10. Olen vähän

      Hysteerinen se on totta. Etkai ymmärrä miten syvästi tunnen sinua kohtaan. Ja olet aina lähelläni. Olet osa jo jotain. I
      Ikävä
      10
      1145
    Aihe