Forum » Programska oprema » Excel
Excel
bruderbauc ::
Moj problem je sledeči...
V Excelu imam 5 stolpcev s podatki (stolpci se začnejo v 5 vrstici in končajo v 65536). V vsaki vrstici, kjer so zapisani podatki je v zadnjem stolpcu napisano ali TRUE ali pa FALSE. Jaz želim vsaki vrstici v kateri piše TRUE, nastaviti višino na 12.75, vsaki, v kateri pa piše FALSE pa na 0.
Ta problem sem rešil tako, da sem ustvaril en gumb in mu noter napisal naslednji program:
Dim i As Double 'stevilo vrstic v katerih so podatki
Dim j As Double 'trenutna vrstica
i=10 'da ne bom preveč kompliciral s tem kako sem preštel število vrstic s podatki, bom za reševanje tega problema kar rekel, da so podatki zapisani do 10 vrstice
'visino vseh vrstic nastavi na 12.75
Rows("5:65536").RowHeight = 12.75
'Vsaki vrstici v kateri v zadnjem (256-em) stolpcu pise false nastavi visino na 0
j = 5
While j < i
If Worksheets("List1").Cells(j, 256) = False Then
Rows(j).RowHeight = 0
j = j + 1
Else
j = j + 1
End If
Wend
Na ta način mi dela kar vredu, dokler nimam dosti vrstic s podatki. Ko pa jih imam dosti (100 in več) pa to skrčevanje posameznih vrstic na višino 0 deluje prepočasi. A obstaja kakšen hitrejši način za to? Je možno kako vse vrstice naenkrat skrčiti na 0?
V Excelu imam 5 stolpcev s podatki (stolpci se začnejo v 5 vrstici in končajo v 65536). V vsaki vrstici, kjer so zapisani podatki je v zadnjem stolpcu napisano ali TRUE ali pa FALSE. Jaz želim vsaki vrstici v kateri piše TRUE, nastaviti višino na 12.75, vsaki, v kateri pa piše FALSE pa na 0.
Ta problem sem rešil tako, da sem ustvaril en gumb in mu noter napisal naslednji program:
Dim i As Double 'stevilo vrstic v katerih so podatki
Dim j As Double 'trenutna vrstica
i=10 'da ne bom preveč kompliciral s tem kako sem preštel število vrstic s podatki, bom za reševanje tega problema kar rekel, da so podatki zapisani do 10 vrstice
'visino vseh vrstic nastavi na 12.75
Rows("5:65536").RowHeight = 12.75
'Vsaki vrstici v kateri v zadnjem (256-em) stolpcu pise false nastavi visino na 0
j = 5
While j < i
If Worksheets("List1").Cells(j, 256) = False Then
Rows(j).RowHeight = 0
j = j + 1
Else
j = j + 1
End If
Wend
Na ta način mi dela kar vredu, dokler nimam dosti vrstic s podatki. Ko pa jih imam dosti (100 in več) pa to skrčevanje posameznih vrstic na višino 0 deluje prepočasi. A obstaja kakšen hitrejši način za to? Je možno kako vse vrstice naenkrat skrčiti na 0?
- premaknilo iz Pomoč in nasveti: bastadu ()
Tutankhamun ::
Probi dat to pred tvojo kodo
Application.ScreenUpdating = False
Pa še na konc tvoje kode
Application.ScreenUpdating = True
To je zato da ti ne refreša vedno zaslona ko kej popravš. Šele na konc ko daš nazaj na true ti ga bo refrešu.
Hitrost se kuj poveča. Zdej če bo teb še prepočas pa povej, da si še kej zmislmo
Application.ScreenUpdating = False
Pa še na konc tvoje kode
Application.ScreenUpdating = True
To je zato da ti ne refreša vedno zaslona ko kej popravš. Šele na konc ko daš nazaj na true ti ga bo refrešu.
Hitrost se kuj poveča. Zdej če bo teb še prepočas pa povej, da si še kej zmislmo
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | (Java) Iskanje manjkajoči podatkov v tabeliOddelek: Programiranje | 1051 (816) | noraguta |
» | Excel: izbris obeh podvojenih vrednostiOddelek: Programiranje | 1102 (1046) | dvojka |
» | Javascript problemcekOddelek: Programiranje | 1594 (1387) | tempoFlow |
» | [Excel] problem z makrojem, visual basic (strani: 1 2 )Oddelek: Programiranje | 5664 (5127) | steev |
» | excelove enačbe me mučijoOddelek: Programska oprema | 1686 (1564) | Tutankhamun |