Vapaa kuvaus

Isaan Rules WFF CCC If you walked away smiling-then for you the price was right Keep Exceling Suosikkibändit/artistit: Queen, Rammstein, genesis, Bruce Bringsteen, Kino, Mandref Mann Earth band Who Lempikirjat: ohjelmointi... Suosikkipalstat Suomi24 Keskusteluissa: EXCEL, Kivitalot, EPS En pidä: pakkanen ja loskakelit Ruoka & juoma: loimulohi ja valkkari Linkit: http://www.kundepuu.com, Khorat Koulutus: --- Ammatti: Tiede/teknologia Työskentelen: freelancer Ase tai siviilipalvelus: yliluutnantti Siviilisääty: Varattu Lapset: --- Hakusanat: Thaimaa, korat, Excel, VBA, ACAD, CNC, Polyurea, EPS, MgO elementti

Aloituksia

7

Kommenttia

1374

  • Uusimmat aloitukset
  • Suosituimmat aloitukset
  • Uusimmat kommentit
  1. Function EtsiJaSiirrä2(Hakuehto As Variant, Taulukko As String, Alue As String) As Range
    Dim solu As Range
    Dim EkaOsoite As String
    Worksheets(Taulukko).Activate
    With Range(Alue)
    Set solu = .Find( _
    What:=Hakuehto, _
    LookIn:=xlValues, _
    LookAt:=xlWhole, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, _
    MatchCase:=False, _
    SearchFormat:=False)
    If Not solu Is Nothing Then
    Set EtsiJaSiirrä2 = solu
    EkaOsoite = solu.Address
    Do
    Set EtsiJaSiirrä2 = Union(EtsiJaSiirrä2, solu)
    Set solu = .FindNext(solu)
    Loop While Not solu Is Nothing And solu.Address EkaOsoite
    End If
    End With
    End Function

    Sub Testi2()
    Dim Löydetty As Range
    Dim solu As Range
    Dim laskuri As Integer
    Sheets("viat").Rows("2:65536").Delete
    Range("A2").Select
    Set Löydetty = EtsiJaSiirrä2("vika", "välilehti1", "I:I")
    If Not Löydetty Is Nothing Then
    For Each solu In Löydetty
    Union(solu.Offset(0, -8), solu.Offset(0, -7), solu.Offset(0, -6)).Copy Range("viat!A65536").End(xlUp).Offset(1, 0)
    laskuri = laskuri + 1
    Next
    End If

    Set Löydetty = EtsiJaSiirrä2("vika", "välilehti2", "I:I")
    If Not Löydetty Is Nothing Then
    For Each solu In Löydetty
    Union(solu.Offset(0, -8), solu.Offset(0, -7), solu.Offset(0, -6)).Copy Range("viat!A65536").End(xlUp).Offset(1, 0)
    laskuri = laskuri + 1
    Next
    End If

    Set Löydetty = EtsiJaSiirrä2("vika", "välilehti3", "E:E")
    If Not Löydetty Is Nothing Then
    For Each solu In Löydetty
    Union(solu.Offset(0, -4), solu.Offset(0, -3), solu.Offset(0, -2)).Copy Range("viat!A65536").End(xlUp).Offset(1, 0)
    laskuri = laskuri + 1
    Next
    End If

    Set Löydetty = EtsiJaSiirrä2("vika", "välilehti4", "E:E")
    If Not Löydetty Is Nothing Then
    For Each solu In Löydetty
    Union(solu.Offset(0, -4), solu.Offset(0, -3), solu.Offset(0, -2)).Copy Range("viat!A65536").End(xlUp).Offset(1, 0)
    laskuri = laskuri + 1
    Next
    End If

    Set Löydetty = EtsiJaSiirrä2("vika", "välilehti5", "E:E")
    If Not Löydetty Is Nothing Then
    For Each solu In Löydetty
    Union(solu.Offset(0, -4), solu.Offset(0, -3), solu.Offset(0, -2)).Copy Range("viat!A65536").End(xlUp).Offset(1, 0)
    laskuri = laskuri + 1
    Next
    End If
    If laskuri = 0 Then
    MsgBox "Ei vika tapauksia!", vbInformation
    Else
    MsgBox "vika tapauksia löytyi " & laskuri & " kpl!", vbInformation
    End If
    End Sub
  2. Kyllä makrojen pitäisi periaatteessa toimia nopeammin. Eroa tuskin huomaa ennenkuin kyseessä on sitten isot työkirjat ja paljon laskentaa ja editointia ja taustalla paljon avoimia ohjelmia.

    hiukan valaisua asiaan

    32 bittisen max muistin käyttö on 4GB, mikä rajoittaa siis myös Excelin nopeutta jos avoimia ohjelmia, työkirjoja on enmmän auki. Eli joutuu sumplimaan vapaan tilankäytön kanssa. Toisaalta on turha asentaa muistia koneeseen yli 4 GB jos käytössä on 32 bittinen systeemi, koska se ei voi käyttää yli 4 Gb muistiavaruutta!
    64 biitisen muistiavaruus on sitten jo 17 miljoonaa GB. Tästä syystä muistiakin on enemmän käytössä olettaen, että koneessa itsessäänkin on lisätty tarpeeksi muistikampoja... )-;

    Kumpi versio sitten 64 bittiseen windowsiin?

    Oletuksena Office asentuu aina 32 bittisenä.

    Jos tiedostokoot excelissä on alle 2GB ja ei tehdä massiivisia toimituksia parempi pysytellä 32 bittisessä versiossa. Jos 64 bittinen Windows niin se rajoittaa 32 bittisten excelmakrojen käyttöä, koska 64 bittinen ei tue 32 biitisiä ActiveX , COM ja monia 3 osapuolentekemiä apuohjelmia, sekä Excelin omia kontrolleja aikaisemmista versioista jotka ovat vain 32 bittisiä.
    64 bittisessä officessa voit tehdä koodia myös 32 bittisenä, mutta pitää varmistaa, että oikeat muuttujat ovat käytössä 64 bittisessä tehdyssä koodissa, jotta se toimisi myös aiemmissa versioissa. Eli voit tehdä koodia "jossittelemalla", joka sitten toimii sekä 32 bittisessä, että 64 bittisessä ympäristössä
    Ongelmat voidaan korvata käännösohjelmilla. Ei oo tietoa kuinka hyvin toimii?

    eli summa summarum
    el ihyvällä säkääl 32 bittinen makro siis toimii nopeammin, mutta ei kuitenkaan 2 kertaa vaan luokkaa 1.2-1.5. Jostain foorumilta luin , että odottavat ekaa koodin pätkää, joka toimisi 2 kertaa nopeammin, mutta eipähän ole vastauksia näkynyt...
    Siis ainoa hyöty tällä hetkellä on isojen tiedostojen yli 2 GB käyttö 64 bittisellä...

    toka kyssäri
    onnistuu...
    muodostat excel objektin ja sitten koodissa jotai tommosta
    esim. suorittaa ExcelApp-objektissa makron TestiMakro. Makrollehan voi syöttää myös parametrejä, mutta ohjeethan löytyy helpistä.

    ExcelApp.Run('TestiMakro')