提一个关于excel修订的问题 ( 积分: 200 )

  • 主题发起人 主题发起人 ttt22703
  • 开始时间 开始时间
T

ttt22703

Unregistered / Unconfirmed
GUEST, unregistred user!
不知道各位有没有做过excel修订,跟踪痕迹的功能,word已经实现,但是用excel的宏录制功能确录制不到低码.请做过的朋友帮忙或提供一些代码,谢谢
 
不知道各位有没有做过excel修订,跟踪痕迹的功能,word已经实现,但是用excel的宏录制功能确录制不到低码.请做过的朋友帮忙或提供一些代码,谢谢
 
1、能够显示修订的工作薄是有条件的,它必须能够共享,那种用鼠标右键直接创建的文件是不行的。
2、首先启动 Excel,创建一个新工作薄(手动/程序),保存。这个保存下来的空文档就具有了保存日后修订的功能。
3、在需要的时候用程序打开该文档,运行下列代码,就可以显示在其之前的所有修订了。
const
xlShared = $00000002;
xlAllChanges = $00000002;
begin
XlsApp.Workbooks.Open('D:/Book1.xls');
XlsApp.ActiveWorkbook.KeepChangeHistory := True;
XlsApp.ActiveWorkbook.SaveAs('D:/Book1.xls', xlShared);
XlsApp.ActiveWorkbook.HighlightChangesOptions(xlAllChanges);
XlsApp.ActiveWorkbook.ListChangesOnNewSheet := False;
XlsApp.ActiveWorkbook.HighlightChangesOnScreen := True;
end;
 
谢谢vvyang的回答
但在这句出现了问题
XlsApp.ActiveWorkbook.HighlightChangesOptions(xlAllChanges);
错误提示是ole error 800A03EC
这时这句话提示为
excel.ActiveWorkbook.HighlightChangesOptions=inaccessible value
不知道为什么
 
不好意思,有些细节没写到:
1、启动 Excel,新建一个工作薄。依次点击 [工具]->[共享工作薄],在弹出的对话框中选中“允许多用户同时编辑”,它会提示让你保存,保存后的工作薄标题也多了“[共享]”两个字。要的就是这个 Excel 文档。
2、在需要的时候用程序打开该文档,运行下列代码,就可以显示在其之前的所有修订了。
uses ComObj;
procedure TrackRevisions(const FileName: string);
const
xlShared = $00000002;
xlAllChanges = $00000002;
var
XlsApp: OleVariant;
begin
XlsApp := CreateOleObject('Excel.Application');
try
XlsApp.Workbooks.Open(fn);
XlsApp.ActiveWorkbook.KeepChangeHistory := True;
XlsApp.ActiveWorkbook.HighlightChangesOptions(xlAllChanges);
XlsApp.ActiveWorkbook.ListChangesOnNewSheet := False;
XlsApp.ActiveWorkbook.HighlightChangesOnScreen := True;
XlsApp.Visible := True;
except
XlsApp.Quit;
end;
XlsApp := Unassigned;
end;
 
接受答案了.
 
后退
顶部