Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

excel [D7, WinXP]


Страницы:   1 2

Sash ©   (2004-11-16 09:48:00) 

здравствуйте! я в тупике :)
копирую таблицы с одного листа на другой
кол-во таблиц - 10 штук, а идут они сверху вниз с разрывом в 2 строки. вот в чем проблема:
начинаю копировать (в цикле) первую таблицу, до появления пустой ячейки, и когда она появляется, действие останавливается, а мне надо сделать чтобы она искала следующую таблицу и скопировала нужные мне столбцы и строки
вот кусок кода:

m:=WB.Sheets.Count;
WB.Sheets.Add(,WB.Sheets[m],1,xlWorksheet)//добавлем новый лист
i:=3;
while not VarIsEmpty(WB.Sheets[alist].Cells.Item[i,1].Value) do Inc(i);
for j:=3 to i-1 do
 begin
  acol1:=WB.Sheets[alist].Cells[j,2].Value;
  WB.Sheets[m+1].Cells[j+1,1].Value := acol1;//здесь alist-номер листа с которого копирую, m-количество листов в книге
.......
.......
.......
и так девять колонок

Скажите плиз, как это сделать?
Заранее благодарен всем кто откликнется!


Sash   (2004-11-18 06:37:00) [1]

сделал так:
все переменные acoln перевел в вариант и проверил на varisnull и
о чудо! все прекрасно работает!
Спасибо Вам ЮЮ!


Sash   (2004-11-18 06:26:00) [2]

пишет: operator not applicable to this operand type


Sash   (2004-11-18 06:21:00) [3]

2 ЮЮ ©   (18.11.04 03:54) [26]
acol есть стринг
спасибо!, сейчас попробую


ЮЮ   (2004-11-18 03:54:00) [4]

какого типа acol9 ? стринг или variant?
для стринг
if (acol9 <> '') and (StrToFloat(acol9)>1)
для вариант, возможно, надо будет ещё проверить VarIsNull


Sash   (2004-11-17 14:15:00) [5]

скажите плиз! где ошибка?


Sash   (2004-11-17 13:51:00) [6]

опять проблема :)
  if VarIsFloat(acol9)=False then
  if StrToFloat(acol9)>1 then WB.Sheets[m+1].Cells[j+1,9].Interior.ColorIndex:=10; //12

как встречается пустая ячейка, выдает ошибку
'' is not a valid floating point value

может что неправильно делаю?


Sash   (2004-11-17 13:22:00) [7]

сделал так:
  if VarIsFloat(acol3) then
  if strtofloat(acol3)<45 then WB.Sheets[m+1].Cells   [j+1,3].Interior.ColorIndex:=6;
вроде работает :)
еще раз всем СПАСИБО!


Gloomer   (2004-11-17 12:54:00) [8]

> ЮЮ ©   (17.11.04 12:36) [20]
Виноват, действительно VarIsFloat проверяет только тип переменной. Предложенный Вами вариант действительно более радикальный

> Sash ©   (17.11.04 12:39) [21]
а что говорит при этом программа?


Sash   (2004-11-17 12:39:00) [9]

кстати, первую таблицу нарисовал, а как встретилась уже пустая ячейка, программа опять загнулась :(
блин, хреновый из меня прогаммер, пока что :)


ЮЮ   (2004-11-17 12:36:00) [10]

>посоветуйте пожалуйста, что же тогда предпринять
Для начада, пропускать заголовок:
 for j := iStart + 1 to iEnd do begin

>VarIsFloat(const V: Variant): Boolean;. В хелпе почитай
VarIsFloat(string) = false, независимо, что в той стринг нарисовано :)


Gloomer   (2004-11-17 12:32:00) [11]

есть такая функция function VarIsFloat(const V: Variant): Boolean;. В хелпе почитай.
тогда получим
if VarIsFloat(acol3)then strtofloat(acol3)


Sash   (2004-11-17 12:22:00) [12]

точно! есть такое слово в заголовке столбца каждой из десяти таблиц.
посоветуйте пожалуйста, что же тогда предпринять


ЮЮ   (2004-11-17 12:14:00) [13]

а если в ячейке стояло и в acolX попал текст 'answered'?


Sash   (2004-11-17 12:11:00) [14]

во вторых - не в тему :)


Sash   (2004-11-17 12:09:00) [15]

а как сделать иначе? преобразую для : во-первых в таблице много значений с запятой, а во-вторых
если значение ячейки больше определенного лимита, то эту ячейку выделяю цветом


ЮЮ   (2004-11-17 12:04:00) [16]

strtofloat(acol3)
...
StrToFloat(acol9)


Sash   (2004-11-17 12:01:00) [17]

у меня вообще нет такой переменной


ЮЮ   (2004-11-17 11:53:00) [18]

где-то float переменной пытаешься присвоить строку 'answered'


Sash   (2004-11-17 11:42:00) [19]

блин, выскакивает ошибка:
'answered' is not a valid floating point value
скажите  пожалуйста, что не так?


Sash   (2004-11-17 11:22:00) [20]

2 ЮЮ ©   (17.11.04 10:07) [7]
 Gloomer ©   (17.11.04 10:24) [8]
 Наиль   (17.11.04 11:06) [9]
Спасибо Вам всем большое! теперь все ясно.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо