Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение данных из ячейки вызовом Offset, Чтение данных из ячейки вызовом Offset 
:(
    Опции темы
maxfox111
Дата 16.11.2013, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 9.11.2008

Репутация: нет
Всего: нет



Добрый день 

хотелось бы получить консультацию по следующему вопросу:
(пытаюсь запрограммировать свой же макрос для 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[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;





PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.