Текущий архив: 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.5 MB
Время: 0.005 c