Hirdetés

Keresés

Új hozzászólás Aktív témák

  • 26centi
    csendes tag

    Szia!
    Ha tudod a sorok számát akkor:

    Sub Akarmi()
    Worksheets(1).Select
    Dim ujsor As Integer
    ujsor = 1
    For Index = 1 To 10
    Rows(CStr(Index) & ":" & CStr(Index)).Select
    If Cells(Index, 2).Text <> "#HIÁNYZIK" Then
    Selection.Copy
    Worksheets(2).Select
    Rows(CStr(ujsor) & ":" & CStr(ujsor)).Select
    ActiveSheet.Paste
    Worksheets(1).Select
    ujsor = ujsor + 1
    End If
    Next Index
    End Sub

    Egyébként én cellánként másolgatnám az értékeket anélkül, hogy mindig kijelölgetném a második worksheetet valahogy így:

    Ha a vizsgált cella értéke megfelelő akkor
    Worksheets(2).Cells(XY).text=worksheets(1).cells(ZY).text
    (Sokkal gyorsabb lesz afutása a makrónak, és nem vibrál a kép futás közben ;) )

    Jah, bocs, elfelejtettem írni, hogy az a baj, hogy a sor kijelölésének formája:
    Rows("1:1").select
    Ebből gondolom látod mi a gond: String paramétert várna a rows sub
    Remélem segítettem :)

    Helló,

    Kösz az ötleteket, sajnos a megoldás nem ez lett. :F Nem értem, hogy miért, de annak ellenére, hogy egy alőző sorban aktiválom (mindegy, hogy .select vagy .activate-el) a cél munkalapot, a rows(n).select sort csak úgy fogadja el, hogy előtte a munkalapot is beírom.
    Ez működik:
    Worksheets("missing cost centers").Activate
    Worksheets("missing cost centers").Rows(n).Select

    Ez nem működik:
    Worksheets("missing cost centers").Activate
    Rows(n).Select (Rows(CStr(n) & ":" & CStr(n)).Select -el sem)

    A makrót ugyan a forrás munkalaphoz hoztam létre, de ha ez a baj, akkor sem értem a hibaüzenetet. Ha a cél munkalap aktiválása a sor kiválasztás sorra már nem hat, akkor miért nem választja ki az n. sort az anya-(forrás)munkalapon???

    Úgy látszik itt még bőven van mit megtanulni a hivatkozásokról, mert a hétköznapi logika alapján ez elég katyvasz.

    Egyébként kösz a tippeket, a cellánkénti másolás és a képernyőfrissítés kikapcsolása is hasznomra lesz még. :))

    Derűs, dolgos munkanapot

  • martonx
    veterán

    Szia!
    Ha tudod a sorok számát akkor:

    Sub Akarmi()
    Worksheets(1).Select
    Dim ujsor As Integer
    ujsor = 1
    For Index = 1 To 10
    Rows(CStr(Index) & ":" & CStr(Index)).Select
    If Cells(Index, 2).Text <> "#HIÁNYZIK" Then
    Selection.Copy
    Worksheets(2).Select
    Rows(CStr(ujsor) & ":" & CStr(ujsor)).Select
    ActiveSheet.Paste
    Worksheets(1).Select
    ujsor = ujsor + 1
    End If
    Next Index
    End Sub

    Egyébként én cellánként másolgatnám az értékeket anélkül, hogy mindig kijelölgetném a második worksheetet valahogy így:

    Ha a vizsgált cella értéke megfelelő akkor
    Worksheets(2).Cells(XY).text=worksheets(1).cells(ZY).text
    (Sokkal gyorsabb lesz afutása a makrónak, és nem vibrál a kép futás közben ;) )

    Jah, bocs, elfelejtettem írni, hogy az a baj, hogy a sor kijelölésének formája:
    Rows("1:1").select
    Ebből gondolom látod mi a gond: String paramétert várna a rows sub
    Remélem segítettem :)

    tényleg a kép vibrálásra alkalmazd a makród elején az application.screenupdate = false
    a makród végén meg az application.screenupdate = true módszert
    Ezzel is rendesen lehet gyorsítani a futáson.

Új hozzászólás Aktív témák