Ako vytvoriť plán projektu pomocou kliknutia a presunutia v programe Excel

Nasledujúci článok ukazuje, ako označiť a interogovať kalendár pomocou myš. Označte a vypočujte si kalendár pomocou myši

* V skutočnom svete by sme otvorili formulár na čítanie a zápis zmysluplných záznamov do denníka. Toto cvičenie jednoducho odhalí mechaniku klikania doprava a nájde podrobnosti zo samotného pracovného hárka.

Než začneme, niekoľko vysvetlení k tabuľke, ktorej funkčný model nájdete tu.Niekoľko slov vysvetľujúcich tabuľku

Proces

Kliknutím na bunku v mriežke sa táto bunka zvýrazní a zmení sa jej hodnota. Kliknutím a ťahaním zvýrazníte rozsah a zmeníte jeho hodnoty. Ak je bunka vyplnená, vymaže sa, inak sa vyplní, v tomto prípade znakom „*“.

Kliknutie vpravo je naopak požiadavkou na informácie z vybranej bunky.

Používajú sa v podstate dve udalosti spolu s niekoľkými modulmi.

  • Worksheet_SelectionChange ktorý sa volá, keď sa vyberie bunka alebo bunky.
  • Pracovný list_BeforeRightClick ktorá sa volá pravým tlačidlom myši.

Problém

Kliknutie doprava predstavuje tiež výber, ktorý sa spustí SelectionChange. Budeme musieť nechať tejto udalosti voľný priebeh, vyčistiť vybranú bunku skôr, ako odovzdá kontrolu nad BeforeRightClick udalosti, keď znovu osídlime vyčistenú bunku. Ale táto akcia spustí Výber zmenený udalosti, ktorej zastavenie je potrebné ešte raz vyčistiť.

Urobíme to s logickou vlajkou zvanou blnLoading.

Udalosti

Do okna s kódom za pracovným hárkom (tj. Nie do modulu) zadajte toto.

Možnosť Explicitné Dim blnNačítanie ako Boolean Dim sPhase ako reťazec Dim currentCellValue ako reťazec Dim dDate ako dátum Súkromný Sub Worksheet_SelectionChange (ByVal Tarzískať ako rozsah) Ak je ActiveCell.Row> 14 a ActiveCell.Row <25, potom ak je ActiveCell.Column> 4 a ActiveCell.Column <47, potom je výber platný Pri chybe Obnoviť ďalší currentCellValue = Tarzískať. Hodnota 'získať tarzískať hodnotu z (ByVal Target As Range) Ak blnLoading = True, potom hodnota True vynúti ukončenie tejto udalosti blnLoading = False Exit Sub End If sPhase = Cells (ActiveCell.Row, 1) If sPhase = "" Then Exit Sub If ActiveCell = " * "Potom" ak je bunka vyplnená, vymažte vybraný rozsah Volať ClearRange Volať UnblockCalendar Volať PopulateRange Ukončiť, ak je volať RedrawCells Range ("A1"). Vyberte 'oživiť udalosť SelectionChange zmenou výberu. Koniec Sub End If End If End Sub Súkromný Sub Worksheet_BeforeRightClick (ByVal Tarzískať ako rozsah, zrušiť ako boolovské hodnoty) Ak je currentCellValue = "*" potom 'zachytený predchádzajúcou udalosťou PRED tým, ako ju vymazal; „To znamená, že ide o platný záznam v denníku s podrobnosťami. blnLoading = True 'toto zabráni spusteniu udalosti SelectionChange (vyššie).
        Target. Vyberte'curCell = Target.Address 'Range (curCell). Vyberte

            Target.Value = "*" 'obnovte hodnotu bunky, pretože SelectionChange ju vyčistil Volajte PopulateRange dDate = bunky (13, ActiveCell.Column) sPhase = bunky (ActiveCell.Row, 1) MsgBox dDate & "-" & sPhase Cancel = True 'potlačí štandardné ponuky Excel_kliknutia na koniec End If Range ("A1"). Vyberte blnLoading = False End Sub

Toto sa postará o dve udalosti.

Odkazovaný kód

Pripojte k kódu nasledujúce vyplňovacie a vyľudňujúce rozsahy:

Sub ClearRange () Selection.FormulaR1C1 = "" S Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 Koniec s Koncom Sub Sub PopulateRange () Selection.FormulaR1C1 = "*" S Selection.Interior .Pattern = xlSolid. PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = 0.799981688894314 .PatternTintAndShade = 0 Koniec koncovým sub

Údržba mriežky

Vložte modul do aplikácie. Pridajte nasledujúci kód na zachovanie vzhľadu mriežky. Toto bolo skopírované z makro rekordéra, prepúšťania a všetkého.

Možnosť Explicitné Sub UnblockCalendar () Selection.FormulaR1C1 = "" S výberom Selection.Borders (xlDiagonalDown) .LineStyle = xlNone Selection.Borders (xlDiagonalUp) .LineStyle = xlNone Selection.Borders (xlEdgeLeft) xLNeOlleEtyle = xlEdgeLeft). .LineStyle = xlNone Selection.Borders (xlEdgeBottom) .LineStyle = xlNone Selection.Borders (xlEdgeRight) .LineStyle = xlNone Selection.Borders (xlInsideVertical) .LineStyle = xlNone Selection.Borders (xlInsideHorizontal) () Selection.Borders (xlDiagonalDown) .LineStyle = xlNone Selection.Borders (xlDiagonalUp) .LineStyle = xlNone so Selection.Borders (xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0. Hranice (xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0.Weight = xlThin Koniec s Selection.Borders (xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin Koniec s Selection.Borders (xlEdgeRight) .LineStyle = xlContinuous. = 0lContinuous. = 0 .Weight = xlThin Koniec s Selection.Borders (xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin Koniec s Selection.Borders (xlInsideHorizontal) .LineStyle = xlContinuous = xlContinuous = 0. .Weight = xlThin End With End Sub

Ochrana pred katastrofou

Každý, kto sa veľa venuje vývoju v programe Excel, bude vedieť, že zložité tabuľky xlsm môžu občas zlyhať a poškodiť otvorený dokument. Vo viacerých prípadoch, ako by sa dalo čakať, sa poškodený zošit nedá obnoviť pomocou postupov obnovenia programu Excel. Ak neexistujú žiadne zálohy, vykonaná práca je lost. Tomu sa dá zabrániť pomocou nástrojov určených na výkon Oprava programu Excel.

Úvod autora:

Felix Hooker je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane rar oprava a softvérové ​​produkty na obnovenie sql. Pre viac informácií navštívte www.datanumen. S

Jedna odpoveď na „Ako vytvoriť plán projektu pomocou funkcie „Klikni a potiahni“ v Exceli“

  1. Nie som si istý, kde berieš informácie, ale skvelá téma. Potrebujem stráviť nejaký čas učením sa alebo porozumením.
    Ďakujem za úžasné informácie Hľadal som tieto informácie pre svoju misiu.

Nechaj odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *