Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.31;
Скачать: CL | DM;

Вниз

Delphi + Excel   Найти похожие ветки 

 
indiegod   (2009-12-07 22:22) [0]

здравствуйте, уважаемые мастера Дельфи!

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

if a = 1 then
begin
if b = 1 then
begin
  case i of
  3: begin
       srting1:=excel.range["c3"];
       srting2:=excel.range["d3"];
       if srting1 = "" then srting1:="0";
       if srting2 = "" then srting2:="0";
       excel.range["c3"]:=inttostr(strtoint(srting1)+1);
       excel.range["d3"]:=inttostr(strtoint(srting2)+1);
     end;
  4: begin
       srting1:=excel.range["c4"];
       srting2:=excel.range["d4"];
       if srting1 = "" then srting1:="0";
       if srting2 = "" then srting2:="0";
       excel.range["c4"]:=inttostr(strtoint(srting1)+1);
       excel.range["d4"]:=inttostr(strtoint(srting2)+1);
     end;
.....


так вот возник вопрос. можно ли объявить переменную и ее значения потом подставлять в адрес ячейки?


 
KilkennyCat ©   (2009-12-07 22:44) [1]

да


 
indiegod   (2009-12-07 22:46) [2]


> KilkennyCat ©   (07.12.09 22:44) [1]
> да
>
>


это хороший ответ, но можно ли подробнее, пожалуйста?


 
KilkennyCat ©   (2009-12-07 23:05) [3]

что подробно? про объявление переменной и ее использование? это основы языка. из Вашего кода я ничего не понял. но попытаюсь...
procedure er(var a: string)
begin
if excel.range[a] = "" then  if excel.range[a] = "1";
end;

if (a = 1) and  (b = 1) then
for i = 3 to 4 step 1 do begin
 er("c" + inttostr(i));
  er("d" + inttostr(i));
end;


вот так?


 
indiegod   (2009-12-07 23:20) [4]

если код не помог, объясню

я пишу программу подсчета статистики выполнения действий (например, бросков) в течении хоккейного матча

у меня есть две комманды по 20 игроков, представленные двумя группами по 20 кнопок

я нажимаю на кнопку с номером и ставлю плюс или минус в зависимости от результата. этот результат должен быть занесен в таблицу. причем там две таблицы на двух worksheets

я смог сделать запись в ячейку через переменную, только для одного листа. а как сделать то же самое, но на два?


 
Anatoly Podgoretsky ©   (2009-12-07 23:25) [5]

> indiegod  (07.12.2009 22:46:02)  [2]

Это хороший и главное правильный ответ.


 
KilkennyCat ©   (2009-12-07 23:28) [6]


> а как сделать то же самое, но на два?

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


 
KilkennyCat ©   (2009-12-07 23:30) [7]

или непонятен метод обращения ко второму листу?


 
indiegod   (2009-12-07 23:37) [8]

там же есть вид обращения вроде excel.worksheets[n].range или что-то вроде того


 
KilkennyCat ©   (2009-12-07 23:40) [9]

угу. так в чем вопрос тогда?


 
indiegod   (2009-12-07 23:52) [10]

тогда спасибо всем, кто мне помог


 
indiegod   (2009-12-09 07:02) [11]

еще вопросец возник. да и не только у меня

почему-то в приложении работают с экселем только две формы
все остальные нарываются на invalid variant operation
как это обойти?
или две формы это максимум?


 
sniknik ©   (2009-12-09 07:54) [12]

> да и не только у меня
клуб ламеров?

> как это обойти?
ошибки исправить.

> или две формы это максимум?
ага, и еще 2 операции максимум, и 2 вызова функции, и 2 переменных, 2 инициализации, 2 присвоения... просто страшно жить становится.
хорошо, что это только для тебя лично, а "мужики не знают".

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


 
sniknik ©   (2009-12-09 07:59) [13]

http://delphimaster.net/view/2-1260327565/



Страницы: 1 вся ветка

Текущий архив: 2010.01.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-1234977811
Skyhawk
2009-02-18 20:23
2010.01.31
Изменение цвета строки в TListView


15-1259189494
POOP
2009-11-26 01:51
2010.01.31
Проблема с D-Link G520


2-1260209059
opolo2000
2009-12-07 21:04
2010.01.31
TQRImage в run-time


1-1235132567
dmitry1208197320
2009-02-20 15:22
2010.01.31
Поддержка темы XP компонентом TTreeView


15-1259345408
werty
2009-11-27 21:10
2010.01.31
что такое mailto?