PDA

View Full Version : حرفه ای: مشکل در هنگام استفاده از فرمول اکسل در دلفی



hosseinmehr
پنج شنبه 14 بهمن 1389, 20:37 عصر
من برای ایجاد یک فایل اکسل و قرار دادن اطلاعات درون آن از روش زیر استفاده کرده ام:


procedure TFSabtTest.btnCorrectTestClick(Sender: TObject);
var
oXL, oWB, oSheet, oRng, VArray,oData : Variant;
i , j : Integer;
numRow,numCol : Integer;
range : string;
begin
// Start Excel and get Application Object
oXL := CreateOleObject('Excel.Application');
oXL.Visible := True;
// Get a new workbook
oWB := oXL.Workbooks.Add;
oSheet := oWB.ActiveSheet;
numRow := 10;
numCol := 20;
oData := VarArrayCreate([1,numRow,1,numCol],varVariant);
j := 1;
for i := 1 to numRow do
begin
oData[i+1, j] := i;
end;
oSheet.range[RefToCell(1, 1), RefToCell(numRow, numCol)] := oData;
oRng := oSheet.Range[RefToCell(1, 1)+':'+ RefToCell(1, numCol)];
oRng.orientation := 90;
oRng.EntireColumn.AutoFit;
oRng.Font.Bold := True;
oRng.VerticalAlignment := xlVAlignCenter;
oRng := oSheet.Range[RefToCell(numRow+2,3),RefToCell(numRow*2 + 1 ,numCol)];


oRng.formula :='=IF(C2<>"";IF(C2=$B2;3;-1);0)';




مشکلی که من دارنم اینه که در خط آخر که از فرمول استفاده کردم خطا بهم میده.
البته وقتی از فرمول ساده استفاده میکنم که if نداره خطا نمیگیره ولی با اضافه کردن if ازم خطا میگیره.

تابعRefToCell را هم از این تاپیک گرفتم.
http://barnamenevis.org/showthread.php?177613

hosseinmehr
جمعه 15 بهمن 1389, 00:53 صبح
عجب سایت باحالیه این سایت برنامه نویس .
امکان نداشته که من یه مسئله را بپرسم و غیر از خودم کسی جواب بده.

راه حل مشکلم این بود که باید به جای ; از , در تابع if استفاده کنم هر چند که داخل خود اکسل باید از ; استفاده بشه.
این دیگه از کارهای حیرت آور مایکروسافته(شاید برای خودشون عادیه) که خوشش میاد ملت سر کار باشن.