Berhevoka şaneyên hilbijartî li Clipboard kopî bikin

Carinan ji bo hin tiştan demek pir dirêj digire. Lê gava ku ew JÎ hatine îcad kirin, piştî rastiyê ew eşkere û tewra banal jî xuya dikin. Ji rêzenivîsa "çi, mimkûn bû?".

Ji guhertoyên yekem ve, barika statûyê ya li binê pencereya Microsoft Excel bi kevneşopî ji bo şaneyên hilbijartî jimaran nîşan dide:

Berhevoka şaneyên hilbijartî li Clipboard kopî bikin

Ger bixwaze, tewra gengaz bû ku meriv li ser van encaman rast-klîk bike û ji pêşeka kontekstê tam ka kîjan fonksiyonên ku em dixwazin bibînin hilbijêrin:

Berhevoka şaneyên hilbijartî li Clipboard kopî bikin

Û tenê vê dawiyê, di nûvekirinên herî dawîn ên Excel de, pêşdebirên Microsoft-ê taybetmendiyek hêsan lê jêhatî lê zêde kirin - naha gava ku hûn li ser van encaman bikirtînin, ew li clipboardê têne kopî kirin!

Berhevoka şaneyên hilbijartî li Clipboard kopî bikin

Çelengî. 

Lê yên ku hîna (an jî berê?) guhertoyek wusa ya Excel tune? Li vir makroyên hêsan dikarin alîkariyê bikin.

Kopîkirina berhevoka hucreyên hilbijartî li Clipboard bi karanîna makroyekê

Di tabê de vekin pêşvebirinê (pêşdebir) weşanvan Visual Basic an jî vê kurteya klavyeyê bikar bînin alt+F11. Modula nû ya vala bi navgîniyê têxin Têxe - Modul û koda jêrîn li wir kopî bikin:

Sub SumSelected() Heke TypeName(Selection) <> "Range" Paşê Bi GetObject Derkeve Bin ("Nû:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Putboard WithSelection)  

Mantiqa wê hêsan e:

  • Pêşî "parastina ji bêaqil" tê - em kontrol dikin ka bi rastî çi tê ronî kirin. Ger ne hucre neyên hilbijartin (lê, mînakî, nexşeyek), wê hingê ji makro derkeve.
  • Piştre fermanê bikar bînin Getobject em hêmanek daneya nû diafirînin ku tê de koma meya şaneyên hilbijartî dê paşê werin hilanîn. Kodek alfanumerîkî ya dirêj û ne têgihîştî, bi rastî, girêdanek ji şaxê qeydkirina Windows-ê re ye ku pirtûkxane lê ye. Pirtûkxaneya Object Forms 2.0 Microsoft, ku dikare tiştên weha biafirîne. Carinan ji vê hîleyê re jî tê gotin nepenî dereng girêdan. Heke hûn wê bikar neynin, wê hingê hûn neçar in ku di pelê de bi navgîniyê ve girêdanek ji vê pirtûkxaneyê re çêbikin Amûr - Çavkanî.
  • Berhevoka şaneyên hilbijartî fermanek tê hesibandin WorksheetFunction.Sum(Hilbijartin), û dûv re mîqdara encam bi fermanê li ser clipboard tê danîn PutInClipboard

Ji bo karanîna hêsan, hûn dikarin, bê guman, vê makroyê bi karanîna bişkojkê veqetînin kurtebirek klavyeyê Macros tab pêşvebirinê (Pêşvebir - Macro).

Û heke hûn dixwazin bibînin ku piştî xebitandina makroyê bi rastî çi hatiye kopî kirin, hûn dikarin panela Clipboard-ê bi karanîna tîra piçûk a li quncika jêrîn a rastê ya koma têkildar vekin. The main (Xane) tablo

Berhevoka şaneyên hilbijartî li Clipboard kopî bikin

Ne tenê mîqdara

Ger, ji bilî mîqdara banal, hûn tiştek din dixwazin, wê hingê hûn dikarin yek ji fonksiyonên ku tişt ji me re peyda dike bikar bînin. WorksheetFunction:

Berhevoka şaneyên hilbijartî li Clipboard kopî bikin

Ji bo nimûne, heye:

  • Sum - sum
  • Average - navgîniya hejmarî
  • Hejmartin - hejmara şaneyên bi jimare
  • CountA - hejmara şaneyên dagirtî
  • CountBlank - hejmara şaneyên vala
  • Min - nirxa herî kêm
  • Max - nirxa herî zêde
  • Mîdya - navîn (nirxa navendî)
  • … Hwd

Di nav de fîlter û rêz-stûnên veşartî jî hene

Ger rêz an stûn di nav rêza hilbijartî de (bi destan an ji hêla parzûnê ve) veşartî bin? Ji bo ku em wan di berhevokan de nehesibînin, pêdivî ye ku em koda xwe hinekî biguhezînin bi lêzêdekirina objektê. Neqînî mal SpecialCells (xlCellTypeVisible):

Sub SumVisible() Heke TypeName(Selection) <> "Range" Dûv re Bi GetObject ("Nû:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Sellellspeial. PutInClipboard Dawî Bi End Sub  

Di vê rewşê de, hesabkirina her fonksiyonek tevahî dê tenê li ser şaneyên xuyayî were sepandin.

Heke hûn hewceyê formula zindî ye

Ger hûn xewnan bibînin, hûn dikarin senaryoyan biafirînin dema ku çêtir e ku hûn ne hejmareke (berdewam), lê formulek zindî di nav tamponê de kopî bikin, ku ji bo şaneyên hilbijartî jimareyên ku em hewce ne hesab dike. Di vê rewşê de, hûn neçar in ku formulê ji perçeyan zeliqînin, jê re rakirina nîşaneyên dolaran lê zêde bikin û li şûna komê (ya ku di navbera navnîşanên çend rêzikên hilbijartî yên li VBA-yê de wekî veqetanker tê bikar anîn) bi nîvcolonê vekin:

Sub SumFormula() Ger TypeName(Selection) <> "Range" Paşê Bi GetObject Derkeve Bin ("Nû:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Replace.(Selection. Navnîşan, ",", ";"), "$", "") & ")" .PutInClipboard Dawî Bi End Sub  

Berhevkirina bi şert û mercên zêde

Û, di dawiyê de, ji bo bi tevahî maniak, hûn dikarin makroyek binivîsin ku dê ne hemî hucreyên hilbijartî, lê tenê yên ku şertên diyarkirî têr dikin binivîsin. Ji ber vê yekê, mînakî, makroyek wusa xuya dike ku berhevoka hucreyên hilbijartî dixe nav Tamponê, heke nirxên wan ji 5-ê mezintir in û di heman demê de ew bi her rengî dagirtî bin:

 Sub CustomCalc() Dim myRange Wek Range Ger TypeName(Selection) <> "Range" Dûv re Ji Sub Her şaneyê Derkeve Di Hilbijartinê de Heke cell.Value > 5 And cell.Interior.ColorIndex <> xlNone Hingê Ger myRange Ne tiştek e Hingê MyRange saz bike = hucreya Else Set myRange = Yekbûn (myRange, şanek) Dawî Ger Biqede Ger şaneya Piştre Bi GetObject ("Nû:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myPutInC)  

Wekî ku hûn dikarin bi hêsanî xeyal bikin, şert dikarin bêkêmasî - heya formên hucreyê - û di her hejmarî de bêne danîn (tevî girêdana wan bi operatorên mentiqî an an û û). Ji bo xeyalan gelek cîh heye.

  • Formulan veguherînin nirxan (6 awayan)
  • Makro çi ne, meriv wan çawa bikar tîne, koda Visual Basic li ku derê têxe
  • Agahdariya kêrhatî di barika rewşa Microsoft Excel de

Leave a Reply