Cum se ascunde programatic coloanele în Excel?
Întrebare: Cum de a ascunde coloanele Delphi într-un fișier Excel?
Întreaga dificultate este că coloanele nu pot fi accesate prin numere, ca la șiruri de caractere. Sau dacă poți, atunci spune-mi cum.
Un exemplu de a ascunde șiruri de caractere de la 20 la 30 în Excel:
Ex. Rows ["20:30"] Selectați;
Ex.Selection.EntireRow.Hidden: = Adevărat;
Voi fi foarte recunoscător dacă scrieți așa ceva pentru coloane.
Puteți încerca să vă adresați prin scrisori ;-)
Pentru mine este simplu la formarea raportului este necesar să ascundeți 4 coloane prin toată lumea 3 într-un ciclu. și cum să le adresați prin scrisori.
"
Coloanele ("A: C") Selectați
Selection.EntireColumn.Hidden = Adevărat
End Sub
Prin scrisori și astfel este clar că este posibil, dar este necesar pentru mine doar prin cifre la coloane pentru a aborda.
> Construirea unui copac (11.02.04 11:02) [4]
> Prin scrisori și astfel este clar că este posibil, dar este necesar doar pentru mine
> Se referă numerele la coloane.
Ce dorințe atât de abrupte: -
Iar numerele din literele pentru traducere încă nu au învățat?
Am făcut o astfel de traducere, dar este incomod și inconsecvent în unele coloane (mai ales atunci când există coloane cu două litere). Știu doar că poți să o faci cumva prin numere. dar asta este cum?
că firul este așa.
funcția ColNumberToColName (ColNumber: Word): șir;
const
CharCount = ord ("Z") - ord ("A") + 1;
începe
dacă ColNumber <= CharCount then
Rezultat: = Char (ord ("A") + ColNumber - 1)
altfel
Rezultat: = Char (ord ( "A") + ColNumber div CharCount - 1) + Char (ord ( "A") + ColNumber mod CharCount - 1)
capăt
Jack128 - nu, doar prin numere. echipa ar trebui să fie ceva de genul:
WorkBook.WorkSheets [1] .Range [WorkBook.WorkSheets [1] .Cells [y1, x1], WorkBook.WorkSheets [1] .Cells [y2, x2]];
(unește celulele.) La început am crezut că era imposibil să faci asta prin numere, dar sa dovedit a fi posibil și ar trebui să fie și cu coloanele)
Da, naibii. în același site, în cazul în care ați scrie Ex.Rows are, de asemenea, o proprietate Coloane [] cărora le-am apel întotdeauna prin figuri, care este Ex.Columns [1], Ex.Columns [2], etc.
Ei bine, poate că acest cod va fi rulat?
NumeleName: șir;
pentru i: = 1 până la 50 nu
CelRangeName: = ColNumberToColName (i * 7) + ":" + ColNumberToColName (i * 7 + 2) + "";
SetLength (NumeNumar, Lungime (RangeName) - 1);
Ex.Range (RangeName) .EntireColumn.Hidden = Adevărat;
Prin numerele cât mai posibile:
olookin: și cum de exemplu de la m la n alege?
De când am scris - nu poți schimba lățimea coloanelor. Este necesar:
De la m la n, desigur într-un ciclu
pentru i: = 1 la 10 // începe întotdeauna cu 1 sau mai multe i
Excel.Workbooks [BookIndex] .Setați [SheetIndex] .Columns [i] .ColumnWidth: =
MyColumnValue;
Sau așa, adică fără un ciclu, i. mai rapid
V: varianta;
V: = Excel.Workbooks [BookIndex]. Șabloane [SheetIndex];
// modificați lățimea de la prima coloană la cea de-a 5-a coloană
V.Range [V.Cells [1,1], V.Cells [1,5]] Lățimea coloanei: = 5;
Sau aceasta: se va ascunde de la prima la a cincea coloană
V: = Excel.Workbooks [BookIndex]. Șabloane [SheetIndex];
V.Range [V.Cells [1,1], V.Cells [1,5]]. ÎntregColumn.Hidden: = adevărat;
Multumesc, functioneaza.