To, co mam, to arkusz z danymi i chcę zdefiniować nieciągły zakres, na którym można na przykład utworzyć wykres.Delphi - Excel: Zdefiniuj nieciągły zakres
Dopóki zasięg jest prostokątny, bardzo łatwo określa zakres.
range := ASheet.Range['A1', 'B10'];
Stwarza to szereg prostokątny z lewym górnym rogu na A1
i prawym dolnym rogu w B10
. Problem polega na tym, że dane nie są zdefiniowane, aby można je było wybrać za pomocą jednego prostokąta.
Jako przykład mamy te dane:
+-------+------+------+------+------+
| Time | Col1 | Col2 | Col3 | Col4 |
+-------+------+------+------+------+
| 01:20 | 5 | 1 | 101 | 51 |
| 01:21 | 6 | 1 | 101 | 51 |
| 01:22 | 5 | 0 | 101 | 51 |
| 01:23 | 5 | 0 | 101 | 51 |
| 01:24 | 5 | 0 | 101 | 55 |
| 01:25 | 5 | 1 | 101 | 55 |
| 01:26 | 6 | 1 | 101 | 15 |
| 01:27 | 7 | 2 | 101 | 15 |
| 01:28 | 7 | 2 | 101 | 15 |
+-------+------+------+------+------+
Jeśli na przykład chcesz utworzyć wykres dla czasie Col1 i COL2 następnie zakres jest po prostu ASheet.Range['A1', 'C10']
. Jeśli chcę utworzyć wykres dla Time, Col1, Col3 i Col4, nie można utworzyć zakresu w ten sposób (ponieważ Col2 nie powinno być dołączone).
W VBA możliwe jest utworzenie żądanego zakresu za pomocą po prostu .Range("A1:B10,D1:E10")
. Niestety nie ma podobnego sposobu definiowania zakresu w Delphi (Excel2010), w rzeczywistości wydaje się, że obsługuje tylko zakres w formacie .Range[topLeft, bottomRight]
.
Moje pytanie brzmi: Jak zdefiniować nieciągły zakres w Delphi?
+1; dobre rozwiązanie. Mogę odnieść się do frustracji związanej z wyszukiwaniem (: –
Linki do innych wersji programu Excel tej samej funkcji: [Excel 2013 Application.Union] (http://msdn.microsoft.com/en-us/library/office/ff834621 (v = office.15) .aspx); [Excel 2010 Application.Union] (http://msdn.microsoft.com/en-us/library/office/ff834621 (v = office.14) .aspx); [Aplikacja Excel 2007 .Union] (http://msdn.microsoft.com/en-us/library/office/bb178176 (v = office.12) .aspx); [Excel 2003 Application.Union] (http://msdn.microsoft. com/en-us/library/office/aa213609 (v = office.11) .aspx); –