Hogyan programozható elrejteni az oszlopokat excel-ben?

Hogyan programozható elrejteni az oszlopokat az Excel-ben?

Kérdés: hogyan kell programozni a Delphi-ból elrejteni az oszlopokat egy Excel fájlban?
Az egész nehézség az, hogy az oszlopok nem férnek hozzá a számokhoz, a húrhoz. Vagy ha tudsz, akkor mondd meg, hogyan.
Példa arra, hogy az Excel-ben 20-tól 30-ig terjedő karakterláncokat rejtsünk el:
Ex.Rows ["20:30"].
Ex.Selection.EntireRow.Hidden: = Igaz;

Nagyon hálás leszek, ha ilyeneket írsz az oszlopokra.

Megpróbálhat betekinteni ;-)

Számomra a jelentéskészítésnél egyszerű, el kell rejteni 4 oszlopot mindenkinek 3 cikluson keresztül. és hogyan kezeljük őket levelekkel.

"
Oszlopok ("A: C")
Selection.EntireColumn.Hidden = Igaz
End Sub

Betéven keresztül, és így világos, hogy ez lehetséges, de nekem csak számokon keresztül oszlopokra van szükségem.


> Faépítés (11.02.04 11:02) [4]
> Leveleken keresztül, és így világos, hogy ez lehetséges, de csak nekem szükséges
> Az oszlopok számai utalnak.

Ó, milyen ilyen merész vágyak: - |
És a lefordított levelek számai még nem tanultak?

Olyan fordítást készítettem, de egyes oszlopokban kényelmetlen és inkonzisztens (különösen, ha két betűs oszlop van). Csak azt tudom, hogy valahogy megcsinálhatod a számokat. de ez így van?

hogy a szál ilyen.
függvény ColNumberToColName (ColNumber: Word): string;
const
CharCount = ord ("Z") - ord ("A") + 1;
kezdődik
ha ColNumber <= CharCount then
Eredmény: = Char (ord ("A") + ColNumber - 1)
más
Eredmény: Char (ord ("A") + ColNumber div CharCount - 1) + Char (ord ("A") + ColNumber mod CharCount - 1)
vég

jack128 - nem, csak a számokon keresztül. a csapatnak ilyennek kell lennie:
WorkBook.WorkSheets [1] .Range [WorkBook.WorkSheets [1] .Cells [y1, x1], WorkBook.WorkSheets [1] .Cells [y2, x2]];
(ez egyesíti a sejteket.) Először azt gondoltam, hogy ez nem volt lehetséges a számokon keresztül, de kiderült, hogy lehetséges, és az oszlopokkal is együtt kell lennie)

Igen, átkozottul. ugyanabban az objektumban, ahol az Ex.Rows-t írjuk, van egy olyan oszlop [] tulajdonság is, amelyhez mindig hozzáférhetek a számokon keresztül, azaz Ex.Columns [1], Ex.Columns [2] stb.

Nos, talán ez a kód fog gördülni?
RangeName: string;
i: = 1-től 50-ig
CelRangeName: = ColNumberToColName (i * 7) + ":" + ColNumberToColName (i * 7 + 2) + ",";

SetLength (RangeName, Length (RangeName) - 1);
Ex.Range (RangeName) .EntireColumn.Hidden = Igaz;

A még mindig lehetséges számokon keresztül:

olookin: és hogyan válasszon például m-től n-ig?

Mivel írtam - nem változtathatod meg az oszlopok szélességét. Szükség van így:

M-től n-ig, természetesen egy ciklusban

i: = 1 - 10 // mindig 1 vagy több i
Excel.Workbooks [BookIndex] .Fájlok [SheetIndex] .Columns [i] .ColumnWidth: =
MyColumnValue;

Vagy igen, azaz. ciklus nélkül, i. gyorsabb

V: Variáns;
V: = Excel.Workbooks [BookIndex] .Fájlok [SheetIndex];
// változtassa meg a szélességet az első oszlopról az 5. oszlopra
V. Átmérő [V.Cells [1,1], V.Cells [1,5]] ColumnWidth: = 5;

Vagy ez: elrejti az elsőtől az ötödik oszlopig
V: = Excel.Workbooks [BookIndex] .Fájlok [SheetIndex];
V. Átméretezés [V.Cells [1,1], V.Cells [1,5]] EntireColumn.Hidden: = true;

olookin köszönöm, működik.