Добрый день
хотелось бы получить консультацию по следующему вопросу:
(пытаюсь запрограммировать свой же макрос для XLS на дельфи, но испытываю трудности)
при помощи ниже приведенного фрагмента кода считываю данные из XLS файла. НО в ексель макросе, я мог читать данные по смещению от активной ячейки
а в дельфи что то не получается вызвать метод Offset
В екселе, в цикле я находил что в определенной ячейке есть константные данные «Тип Телефона», вызвав c.Offset( 1, 0).Value
я получал тип телефона (может быть указано ”МОБ” или ”СОТ”)
Код:
Public Const ConstTelephoneType = “Тип Телефона”
Dim c As Range
Dim ContactTelephone As String
For Each c In Range("A1:F1024")
If c.Value = ConstTelephoneType Then
ContactTelephone = c.Offset( 1, 0).Value
---------------------------
НО как использовать метод Offset( X,Y).Value в дельфи?
ЕСЛИ КТО НАУЧИТ БУДУ ОЧЕНЬ БЛАГОДАРЕН
Код:
AXLSFile:= 'Имя Файла XLS';
// Create Excel-OLE Object
XLApp := CreateOleObject('Excel.Application');
XLApp.Visible := TRUE; // потом поставить FALSE
XLApp.Workbooks.Open(AXLSFile);
Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
// Get the value of the last row
x := XLApp.ActiveCell.Row;
// Get the value of the last column
y := XLApp.ActiveCell.Column;
//XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[1];
XLApp.Workbooks[1].WorkSheets[1].Select;
RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X, Y]].Value;
k := 1;
repeat
for r := 1 to y do
Begin
sGetStrData := RangeMatrix[K, R];
If (sGetStrData = TelephoneConst) Then
Form1.RichEdit1.Lines.Add(sGetStrData);
End;
Inc(k, 1);
until k > x;
// Unassign the Delphi Variant Matrix
RangeMatrix := Unassigned;