Cynnwys
Weithiau mae'n cymryd amser hir iawn i feddwl am rai pethau. Ond pan fyddant EISOES wedi eu dyfeisio, ar ôl y ffaith eu bod yn ymddangos yn amlwg a hyd yn oed banal. O'r gyfres "beth, roedd yn bosibl?".
O'r fersiynau cyntaf un, roedd y bar statws ar waelod ffenestr Microsoft Excel yn draddodiadol yn dangos cyfansymiau ar gyfer celloedd dethol:
Os dymunir, roedd hyd yn oed yn bosibl de-glicio ar y canlyniadau hyn a dewis o'r ddewislen cyd-destun yn union pa swyddogaethau yr ydym am eu gweld:
Ac yn ddiweddar, yn y diweddariadau Excel diweddaraf, ychwanegodd datblygwyr Microsoft nodwedd syml ond dyfeisgar - nawr pan fyddwch chi'n clicio ar y canlyniadau hyn, maen nhw'n cael eu copïo i'r clipfwrdd!
Harddwch.
Ond beth am y rhai nad oes ganddyn nhw eto (neu eisoes?) fersiwn o'r fath o Excel? Dyma lle gall macros syml helpu.
Copïo swm y celloedd dethol i'r Clipfwrdd gan ddefnyddio macro
Agor yn y tab datblygwr (Datblygwr) golygydd Visual Basic neu defnyddiwch y llwybr byr bysellfwrdd hwn Alt+F11. Mewnosod modiwl gwag newydd trwy'r ddewislen Mewnosod – Modiwl a chopïwch y cod canlynol yno:
Is-Swm a Ddewiswyd() Os MathName(Detholiad) <> "Range" Yna Gadael Is Gyda GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) .PutInClipboard
Mae ei resymeg yn syml:
- Yn gyntaf daw'r “amddiffyniad rhag y ffwl” - rydym yn gwirio beth yn union sy'n cael ei amlygu. Os na ddewisir celloedd (ond, er enghraifft, siart), yna gadewch y macro.
- Yna defnyddio'r gorchymyn Getobject rydym yn creu gwrthrych data newydd lle bydd ein swm o gelloedd dethol yn cael ei storio yn ddiweddarach. Mae cod alffaniwmerig hir ac annealladwy, mewn gwirionedd, yn ddolen i gangen cofrestrfa Windows lle mae'r llyfrgell wedi'i lleoli Microsoft Forms 2.0 Llyfrgell Gwrthrych, sy'n gallu creu gwrthrychau o'r fath. Weithiau gelwir y tric hwn hefyd rhwymiad hwyr ymhlyg. Os nad ydych yn ei ddefnyddio, yna byddai'n rhaid i chi wneud dolen i'r llyfrgell hon yn y ffeil trwy'r ddewislen Offer—Cyfeiriadau.
- Mae swm y celloedd a ddewiswyd yn cael ei ystyried yn orchymyn Taflen WaithFunction.Sum(Dewis), ac yna rhoddir y swm canlyniadol ar y clipfwrdd gyda'r gorchymyn PutInClipboard
Er hwylustod, gallwch, wrth gwrs, aseinio'r macro hwn i lwybr byr bysellfwrdd gan ddefnyddio'r botwm Macros tab datblygwr (Datblygwr - Macros).
Ac os ydych chi eisiau gweld beth yn union gafodd ei gopïo ar ôl rhedeg y macro, gallwch chi droi'r panel Clipfwrdd ymlaen gan ddefnyddio'r saeth fach yng nghornel dde isaf y grŵp cyfatebol ar Y prif (Cartref) tab:
Nid yn unig y swm
Os, yn ychwanegol at y swm banal, rydych chi eisiau rhywbeth arall, yna gallwch chi ddefnyddio unrhyw un o'r swyddogaethau y mae'r gwrthrych yn eu darparu i ni Swyddogaeth taflen waith:
Er enghraifft, mae yna:
- Swm – swm
- Cyfartaledd – cymedr rhifyddol
- Cyfrif – nifer y celloedd â rhifau
- CyfrifA – nifer y celloedd wedi'u llenwi
- CountBlank – nifer y celloedd gwag
- Isafswm – isafswm gwerth
- Uchafswm – gwerth mwyaf
- Canolrif – canolrif (gwerth canolog)
- … Ac ati.
Beth os yw rhesi neu golofnau wedi'u cuddio (â llaw neu gan hidlydd) yn yr ystod a ddewiswyd? Er mwyn peidio â'u cymryd i ystyriaeth yn y cyfansymiau, bydd angen i ni addasu ein cod ychydig trwy ychwanegu at y gwrthrych Dewis eiddo Celloedd Arbennig(xlCellTypeVisible):
Is-SumVisible() Os TypeName(Detholiad) <> "Range" Yna Gadael Is Gyda GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCells)(xelection.SpecialCells). Diwedd PutInClipboard Gyda Diwedd Is
Yn yr achos hwn, bydd y cyfrifiad o unrhyw swyddogaeth gyfan yn cael ei gymhwyso i gelloedd gweladwy yn unig.
Os oes angen fformiwla byw arnoch chi
Os ydych chi'n breuddwydio, gallwch chi ddod o hyd i senarios pan mae'n well copïo nid rhif (cyson), ond fformiwla fyw i'r byffer, sy'n cyfrifo'r cyfansymiau sydd eu hangen arnom ar gyfer y celloedd a ddewiswyd. Yn yr achos hwn, bydd yn rhaid i chi gludo'r fformiwla o ddarnau, gan ychwanegu ato dileu arwyddion doler a disodli'r coma (a ddefnyddir fel gwahanydd rhwng cyfeiriadau sawl ystod ddethol yn VBA) gyda hanner colon:
Is-Ffurflen Swm() Os MathName(Dewisiad) <> "Range" Yna Gadael Is Gyda GetObject("Newydd:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Replace(Replace(Selection.) Cyfeiriad, ",", ";"), "$", "") &")".PutInClipboard End With End Sub
Crynhoad gydag amodau ychwanegol
Ac, yn olaf, ar gyfer maniacs llwyr, gallwch ysgrifennu macro a fydd yn crynhoi nid yr holl gelloedd a ddewiswyd, ond dim ond y rhai sy'n bodloni'r amodau a roddir. Felly, er enghraifft, bydd macro yn edrych fel ei fod yn rhoi swm y celloedd a ddewiswyd yn y Byffer, os yw eu gwerthoedd yn fwy na 5 ac ar yr un pryd yn cael eu llenwi ag unrhyw liw:
Is CustomCalc() Dim myRange Fel Ystod Os MathName(Detholiad) <> "Ystod" Yna Ymadael Is Ar Gyfer Pob cell Mewn Dewis Os cell.Value > 5 A cell.Interior.ColorIndex <> xlNone Yna Os yw myRange Dim Yna Gosodwch myRange = cell Arall Gosod myRange = Undeb(myRange, cell) Diwedd Os Diwedd Os Diwedd cell Gyda GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange).PutInClipboard End With EndInClipboard
Fel y gallwch chi ddychmygu'n hawdd, gellir gosod amodau o gwbl - hyd at fformatau celloedd - ac mewn unrhyw faint (gan gynnwys trwy eu cysylltu â gweithredwyr rhesymegol neu neu a). Mae llawer o le i ddychymyg.
- Trosi fformiwlâu i werthoedd (6 ffordd)
- Beth yw macros, sut i'w defnyddio, ble i fewnosod cod Visual Basic
- Gwybodaeth ddefnyddiol ym mar statws Microsoft Excel