Excel - A cella értékének küldése
Probléma
Lehet-e elküldeni egy cella értékét (külön-külön másolni és beilleszteni) egy másik cellába, ahol az értéket nem zavarja, ha a forrás értéke „0” -ra változik?
A bérszámfejtő számológép összesítő munkalapja minden héten információkat kap más munkalapokról az Excel fájlban, és kiszámítja az aktuális heti bérszámfejtést. Az előző hét értékei voltak, de most, az aktuális héten, az előző hét cellái 0.
Célom az, hogy az előző hét értékeit egy másik cellarendszerben megtartsam, hogy a hónapban teljes futamidő legyen.
Példa:
Az A3 képlete:
= IF (A3 = 'Bérszámfejtő'! M2, VLOOKUP (H1, 'Bérszámfejtő'! $ B $ 3: $ M $ 28, 8, FALSE), 0)
Ezt az értéket K3-ra kell elküldeni, de csak akkor, ha több mint 0.
Ha A3 '0' értéket ad vissza, akkor a 0-nál nagyobb érték, ami korábban a K3-ban lett kiküldve, egyedül marad.
Ezt egyszerűen manuálisan egyszerűen elvégeztem a menteni kívánt értékek másolásával, majd a "speciális beillesztés" parancs használatával, és a "célok" beillesztésével. Az „átugrott üresek” nem tesznek semmit. A makró:
Sub Macro1 ()
'
Macro1 makró
'
'
Tartomány ( "C3"). Jelölje
ActiveWindow.ScrollRow = 10
Tartomány ( "C3: I52"). Jelölje
Selection.Copy
Tartomány ( "K3"). Jelölje
Selection.PasteSpecial Paste: = xlValues, művelet: = xlNone, SkipBlanks: = _
Igaz, Transpose: = False
Tartomány ( "K3"). Jelölje
Application.CutCopyMode = Hamis
Vége vége
A nullákkal felülírja az előző hetek értékeit, függetlenül attól, hogy kihagyom az üres lapokat, vagy sem (valószínűleg azért, mert a cellák nullák, nem üresek!)
Az A3: I54 tömböt dolgozom, és szeretném másolni és beilleszteni a 0-nál nagyobb értékeket K3-ra: Q54 megtartva a K3: Q54-ben korábban feltüntetett értékeket, amelyek nagyobbak, mint a 0.
Megoldás
Talán ez helyes irányba vezethet, ha az értelmezésem helyes.
Ez összehasonlítja az A oszlopot azzal, ami jelenleg a K oszlopban van ........
A1 összehasonlítja a K1 értékét
A2 összehasonlítja a K2 értékét
stb....
Ha az A oszlop nulla, és a K oszlop nagyobb, mint nulla, akkor tartsuk meg az értéket a K. oszlopban. Máskülönben másoljuk az A oszlop oszlopát K. oszlopba.
Sub Macro1 () Dim jj = 3 Távolítsa el a tartományt ("A" & j) = "" Ha a tartomány ("A" & j) = 0 Ezután a tartomány ("K" és j) = tartomány ("K" & j) Else Range ("K" & j) = Tartomány ("A" & j) Vége Ha j = j + 1 hurok vége
Több oszlop hozzáadásához tegye a makrót úgy, mint "C: K"
Sub Macro1 () Dim jj = 3 Távolítsa el a tartományt ("C" & j) = "" Ha a tartomány ("C" és j) = 0 Ezután a tartomány ("K" és j) = tartomány ("K" & j) Else Range ("K" & j) = Tartomány ("C" & j) Vége Ha a tartomány ("D" és j) = 0 Ezután tartomány ("L" és j) = Tartomány ("L" & j) Másik Tartomány ("L" és j) = Tartomány ("D" és j) Vége Ha Ha tartomány ("E" és j) = 0 Ezután tartomány ("M" és j) = Tartomány ("M" és j) Más tartomány ("M" & j) = Tartomány ("E" & j) Vége Ha a tartomány ("F" és j) = 0 Ezután Tartomány ("N" és j) = Tartomány ("N" és j) Más tartomány ( "N" & j) = Tartomány ("F" és j) Vége Ha a tartomány ("G" és j) = 0 Ezután tartomány ("O" és j) = Tartomány ("O" és j) Else Range (" O "& j) = Tartomány (" G "és j) Vége Ha a tartomány (" H "és j) = 0 Ezután tartomány (" P "és j) = Tartomány (" P "és j) Else Range (" P "& j) = Tartomány (" H "és j) Vége Ha a tartomány (" I "& j) = 0 Ezután Tartomány (" Q "és j) = Tartomány (" Q "és j) Más tartomány (" Q " & j) = Tartomány ("I" és j) Vége Ha j = j + 1 Loop End Sub
Vegye figyelembe, hogy
Köszönet WutUp WutUp-nak a fórumon található tippért.