![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте, два ListBox1 и ListBox2 в первом содержатся имена ячеек первого листа книги Excel из которых необходимо взять значения, во втором ListBox содержатся имена ячеек второго листа книги в которые необходимо скопировать значения. Как сделать это циклом?
Код:
Apex := CreateOleObject('Excel.Application'); //начинаю работу с excel
Apex.Workbooks.Open(Ap+'Имя файла.xlsx');
Apex.ActiveWorkBook.Sheets.Item[1].Activate; //1 лист активен
L1C1z := Apex.WorkBooks[1].WorkSheets[1].Range[ListBox1.Items[0]]; //значение ячейки в переменную
Apex.ActiveWorkBook.Sheets.Item[2].Activate; //2 лист активен
Apex.Range[ListBox2.Items[0]] := L1C1z; //из переменной в ячейку второго листа |
|
#2
|
|||
|
|||
|
Надеюсь кол-во ячеек в первом и втором списке одинаковое?
Код:
var
I : Integer;
begin
Apex := CreateOleObject('Excel.Application'); //начинаю работу с excel
Apex.Workbooks.Open(Ap+'Имя файла.xlsx');
For I := 0 To ListBox1.Items.Count-1 Do
begin
Apex.ActiveWorkBook.Sheets.Item[1].Activate; //1 лист активен
L1C1z := Apex.WorkBooks[1].WorkSheets[1].Range[ListBox1.Items[i]]; //значение ячейки в переменную
Apex.ActiveWorkBook.Sheets.Item[2].Activate; //2 лист активен
Apex.Range[ListBox2.Items[i]] := L1C1z; //из переменной в ячейку второго листа
end; |
|
#3
|
|||
|
|||
|
lmikle спасибо огромное! Но уже решил вопрос немного по другому, просто запутался в ячейках сначала. Сделал так:
Код:
For i:=0 to ListBox1.Items.Count-1 do begin Apex.Range[ListBox2.Items[i] + EdtL2S.Text] := '=Лист1!' + EdtL1D.Text + ListBox5.Items[i]; //-1- -1- end; |