Excel - изпраща стойността на клетката към целта

В Microsoft извършването на изчисления и уреждането на редовни записи може да се извърши чрез формули в офисния софтуер на Excel. Изпращането на стойности на клетка в Excel към цел може да се извърши чрез стойността на копиране и поставяне на стойността на колоната в целевата клетка. В колона А, ако стойността е нула, а в колона К стойността е по-голяма от нула, копирайте стойността на колона "А" и я поставете в колона "К". Стойността на колоната се контролира от прости функции за копиране в Windows. За да добавите няколко колони, направете формулата като "C: K". Изчислението се прави за следващата колона, докато се достигне до последната колона и стойността се копира и поставя в целевата колона.

Проблем

Възможно ли е да се изпрати стойността на клетката (копиране и поставяне на специална) в друга клетка, където стойността няма да бъде нарушена, когато стойността на източника се промени на '0'?

Работният лист на калкулатора на работната заплата получава информация от други работни листове всяка седмица в Excel файла и изчислява работната заплата за текущата седмица. Предходната седмица имаше стойности, но сега, през текущата седмица, клетките за предходната седмица са 0.

Целта ми е да запазя стойностите от предходната седмица в друг масив от клетки, така че да имам текуща сума за месеца.

Пример:

A3 има формулата:

 = Ако (A3 = 'Калкулатор на заплати'! M2, VLOOKUP (H1, 'Калкулатор на заплатите'! $ B $ 3: $ M $ 28, 8, FALSE), 0) 

Тази стойност трябва да бъде осчетоводена в K3, но само ако е повече от "0".

Ако A3 върне стойност '0', тогава всяка стойност, по-голяма от '0', която е била преди това публикувана в K3, ще бъде оставена сама.

Лесно го правя ръчно, като просто копирам стойностите, които искам да запазя, след това използвам командата 'paste special' и избирайки 'values', поставени към целта. „Пропуските“ не правят нищо. Макросът:

Sub Macro1 ()

"

- Macro1 Macro

"

"

Range ( "C3"). Изберете

ActiveWindow.ScrollRow = 10

Range ( "C3: I52") Изберете.

Selection.Copy

Range ( "K3"). Изберете

Selection.PasteSpecial Paste: = xlValues, Операция: = xlNone, SkipBlanks: = _

True, Transpose: = False

Range ( "K3"). Изберете

Application.CutCopyMode = Невярно

Край Под

Той презаписва стойностите от предишните седмици с нули, независимо дали избирам пропуски или не (вероятно защото клетките са нули, а не празни!)

Работя с масив A3: I54 и желая да копирам и поставям стойности, по-големи от '0' в K3: Q54 запазвайки всички стойности, които преди това са били публикувани в K3: Q54, които са по-големи от '0'.

Решение

Може би това може да ви отведе в правилната посока, ако моето тълкуване е правилно.

Това ще сравни колона А с това, което понастоящем е в графа K ........

A1 сравнява стойността в K1

A2 сравнява стойността в K2

и т.н ....

Ако колона А е нула и колона К е по-голяма от нула, тогава запазете стойността в колона К. В противен случай копирайте стойността в колона А в колона K.

 Sub Macro1 () Dim jj = 3 Да До диапазона ("A" & j) = "" Ако Обхват ("A" & j) = 0 Тогава Обхват ("K" & j) = Обхват ("K" & j) Ел. Диапазон ("K" & j) = Обхват ("A" & j) Край Ако j = j + 1 Sub End End Sub 

За да добавите няколко колони, направете макроса да изглежда като „C: K“

 Sub Macro1 () Dim jj = 3 Да До диапазона ("C" & j) = "" Ако Обхват ("C" & j) = 0 Тогава Обхват ("K" & j) = Обхват ("K" & j) Ел. Диапазон ("K" & j) = Обхват ("C" & j) Край Ако Ако Обхват ("D" & j) = 0 Тогава Обхват ("L" & j) = Обхват ("L" & j) Обхват ("L" & j) = Обхват ("D" & j) Край Ако Ако диапазон ("E" & j) = 0 Тогава Обхват ("M" & j) = Обхват ("M" & j) Else Range ("M" & j) = Обхват ("E" & j) Край Ако Ако Обхват ("F" & j) = 0 Тогава Обхват ("N" & j) = Обхват ("N" & j) Други диапазон ( "N" & j) = Обхват ("F" & j) Край Ако Ако Обхват ("G" & j) = 0 Тогава Обхват ("O" & j) = Обхват ("O" & j) Else Range (" O "& j) = Обхват (" G "& j) Край Ако Ако диапазон (" H "& j) = 0 Тогава Обхват (" P "& j) = Обхват (" P "& j) Else Range (" P ") "& j) = Обхват (" H "& j) Край Ако Ако диапазон (" I "& j) = 0 Тогава диапазон (" Q "& j) = Обхват (" Q "& j) Else Range (" Q ") & j) = Обхват ("I" & j) Край Ако j = j + 1 Sub End край 

Отбележи, че

Благодарение на WutUp WutUp за този съвет на форума.

Предишна Статия Следваща Статия

Топ Съвети