Kāds lasītājs no Čehijas vaicāja par šūnas diagrammas izveidošanu, lai ilustrētu procentuālo daudzumu.
Ja vērtība šūnā bija 37%, kā es varu aizpildīt 37% šūnas no apakšas ar krāsu?
Mala Singh no mūsu grafikas nodaļas nāca klajā ar šo interesanto risinājumu, lai iegūtu vēlamo efektu. Mala izveidoja darblapu, kur katra rinda faktiski sastāv no 2 apvienotām rindām. Šūnas B2 un B3 ir apvienotas vienā šūnā. Kad B2 vērtība tiek mainīta, mazliet VBA koda darblapas rūtī automātiski pielāgos 2. un 3. rindas augstumu. Šūna C3 ir zilā krāsā, bet šūna C2 ir balta. Rezultāts ir tāds, ka C kolonna šūnā parāda kolonnu diagrammu. Šis attēls parāda dažādus zilās joslas augstumus šūnās C2 līdz C13.
Pirmais solis ir apvienot šūnas B2 un B3 vienā šūnā. Jūs atlasīsit šūnas B2 un B3. Izvēlnē atlasiet Formatēt, Šūnas. Dodieties uz cilni Alignment. Atzīmējiet izvēles rūtiņu Sapludināt šūnas. Tas liks B2 un B3 darboties kā vienai šūnai ar nosaukumu B2.
Atstājiet šūnu C2 bez aizpildīšanas un izmantojiet krāsu C3.
Šīs tehnikas kods nav ievietots parastajā modulī. Tas ir "notikumu apstrādātāja" kods, un tas jāievieto šīs konkrētās darblapas kodu modulī. Izlasiet notikuma makro, lai pievienotu ceļu un faila nosaukumu Excel galvenei, lai uzzinātu, kā atvērt darblapas koda moduli.
Ievadiet šo kodu Sheet1 koda modulī (vai jebkurā citā lapā, ar kuru strādājat).
Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 2 And cell.Row> 1 Then If cell.Value> 1 Or cell.Value < 0 Then cell.Select MsgBox ("Value must be between 0 and 100%") End If If IsEmpty(cell) Or cell.Value = 0 Then cell.Range("B1:B2").RowHeight = 25 'cell.Range("B2").Interior.ColorIndex = xlNone Else On Error Resume Next cell.Range("B1").RowHeight = 50 * (1 - cell.Value) With cell.Range("B2") .RowHeight = 50 * cell.Value '.Interior.Color = RGB(0, 0, 255) On Error GoTo 0 End With End If End If Next End Sub
B ailē var atkārtot šūnu pāru apvienošanu.
Paldies Mala Singh par šo risinājumu. Mala var izstrādāt pielāgotus kartēšanas risinājumus, lai apmierinātu jebkuras vajadzības. Viņš piedalījās VBA un Macros for Excel kartēšanas nodaļā.