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

  • 26centi
    csendes tag

    Szia!

    Így látatlanban az n-re gyanakodnék. Ez egy globális változó? Létezik ezen a helyen, ahol használni akarod?

    nos nem tudom mit jelent az pontosan, hogy létezik-e ezen a helyen, de miután deklaráltam, és még értéket is adtam neki ugyanezen subrutinban, gondolom létezik. ha más nem, értékadásnál már nyafogott volna, hogy baja van, de az lefut. :W

    Sub missing_cost_centers()

    Dim i, n As Integer

    i = 9
    n = 2
    Do
    Sheets......

  • 26centi
    csendes tag

    sziasztok,
    én is most teszem kezdőlépéseimet vba-ban. és nem szeret engem. se.

    egy óriási adathalmaz adott feltétel alapján kiválasztott sorát szeretném egy másik munkalap, változóban (n) tárolt számú sorába másolni. kreáltam is egy kódot.

    Do
    Sheets("tools in SAP 3100").Activate 'forrás munkalap

    If Cells(i, 14) = "#Hiányzik" Then
    Rows(i).Select ' átmásolandó sor
    Selection.Copy
    Sheets("missing cost centers").Select 'cél munkalap
    Rows(n).Select 'ezen a ponton kiakad, Application-defined or object defined error üzenettel Hibakód:1004
    ActiveSheet.rows(n).Paste
    n = n + 1

    End If
    i = i + 1

    Loop Until Cells(i, 1) = ""

    sajnos a hibakód helpjét elolvasva sem kaptam a leghalványabb utalást sem hogy mi a nyűgje. két sorral feljebb pedig ugyanez az utasítás működik.

    van valakinek ötlete, hogy miért nem vagyunk barátok?

    előre is kösz,
    derűs, dolgos munkanapot

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