Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
15-1259515027
POOP
2009-11-29 20:17
2010.01.31
Проблема с печатью pdf.


15-1258908985
_
2009-11-22 19:56
2010.01.31
Бьются URL в DowloadMaster.


15-1259403437
acidlord
2009-11-28 13:17
2010.01.31
Транзакции в ДЛЛ


6-1210260418
Zoom
2008-05-08 19:26
2010.01.31
UDP как передать/принять буфер?


1-1234792182
@!!ex
2009-02-16 16:49
2010.01.31
Храним HDC окна. Плохо?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский