通过Delphi 对 excel 进行冻结窗格操作的问题
gdljf 2019-10-16 10:51:18 请问要对 excel 进行冻结窗格操作到底如何弄?我用下面的代码,在运行到“excel.activeWindow.FreezePanes:=true”这一句,总会出现“EOleSysError with message '服务器出现意外情况。'”的错误。
procedure TForm1.Button4Click(Sender: TObject);
var Excel,xlbook,xlsheet: OleVariant;
begin
try Excel := CreateOLEObject('Excel.Application');
except
Application.MessageBox('excel没有安装', '提示信息', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);
Exit;
end;
try
xlbook:=Excel.WorkBooks.Open(extractfilepath(application.ExeName)+'查询表.xlsx');
excel.WorkSheets[ 'Sheet1' ].Activate;
excel.activeWindow.FreezePanes:=false;
excel.activeWindow.SplitColumn:=2;
excel.activeWindow.SplitRow:=1;
xlBook.worksheets[ 'Sheet1' ].cells[2,1].activate;
try
excel.activeWindow.FreezePanes:=true;
except
end;
excel.worksheets[ 'Sheet1' ].cells[2,1].activate;
try
excel.activeWindow.FreezePanes:=true;
except
end;
xlbook.ActiveSheet.Range['A2'].Select;
try
excel.ActiveWindow.FreezePanes:=True;
except
end;
excel.ActiveSheet.Range['A2'].Select;
try
excel.ActiveWindow.FreezePanes:=True;
except
end;
finally
Excel.DisplayAlerts:=False;
Excel.ActiveWorkBook.save;
Excel.WorkBooks.Close ;
Excel.Quit;
end;
end;
我尝试在excel中直接运行下面的宏是正常的。
{Sub Macro1()
Range("A2").Select
ActiveWindow.FreezePanes = True
End Sub}
请问该如何解决(Delphi 7)?