FpSpreadsheet: Fix INDIRECT formula regarding references to other sheets.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9356 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
6124d2d047
commit
79c502f0e9
@ -1623,8 +1623,7 @@ begin
|
|||||||
fs := ExprFormatSettings;
|
fs := ExprFormatSettings;
|
||||||
try
|
try
|
||||||
UpdateExprFormatSettings;
|
UpdateExprFormatSettings;
|
||||||
// ExprFormatSettings := FFormatSettings;
|
AResult.Worksheet := FWorksheet;
|
||||||
// FFormatSettings := ExprFormatSettings;
|
|
||||||
FExprNode.GetNodeValue(AResult);
|
FExprNode.GetNodeValue(AResult);
|
||||||
finally
|
finally
|
||||||
ExprFormatSettings := fs;
|
ExprFormatSettings := fs;
|
||||||
|
@ -2335,10 +2335,10 @@ begin
|
|||||||
begin
|
begin
|
||||||
book := TsWorksheet(Args[0].Worksheet).Workbook;
|
book := TsWorksheet(Args[0].Worksheet).Workbook;
|
||||||
sheet := book.GetWorksheetByIndex(Args[0].ResSheetIndex);
|
sheet := book.GetWorksheetByIndex(Args[0].ResSheetIndex);
|
||||||
|
Result.Worksheet := sheet;
|
||||||
end;
|
end;
|
||||||
addr := sheet.ReadAsText(Args[0].ResRow, Args[0].ResCol);
|
addr := sheet.ReadAsText(Args[0].ResRow, Args[0].ResCol);
|
||||||
Result := CellResult(addr);
|
Result := CellResult(addr);
|
||||||
Result.Worksheet := sheet;
|
|
||||||
end else
|
end else
|
||||||
if (Args[0].ResultType = rtString) then
|
if (Args[0].ResultType = rtString) then
|
||||||
Result := CellResult(Args[0].ResString);
|
Result := CellResult(Args[0].ResString);
|
||||||
|
@ -1409,7 +1409,12 @@ begin
|
|||||||
if res.ResSheetName = '' then
|
if res.ResSheetName = '' then
|
||||||
res.Worksheet := self
|
res.Worksheet := self
|
||||||
else
|
else
|
||||||
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetName);
|
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetName);
|
||||||
|
if res.Worksheet = nil then
|
||||||
|
begin
|
||||||
|
WriteErrorValue(lCell, errIllegalRef);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
end else
|
end else
|
||||||
if res.ResSheetName <> '' then
|
if res.ResSheetName <> '' then
|
||||||
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetname);
|
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetname);
|
||||||
|
Loading…
Reference in New Issue
Block a user