首页 新闻 搜索 专区 学院

jacob excel转PDF失败 报错 无法运行宏。可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用。

-1
悬赏园豆:50 [待解决问题]

ComThread.InitSTA();
actcom=new ActiveXComponent("Excel.Application");
actcom.setProperty("Visible", new Variant(true));
Dispatch.call(actcom, "Run", new Variant("全部解密"));//执行宏方法
Dispatch excels=actcom.getProperty("Workbooks").toDispatch();
actcom.setProperty("AutomationSecurity", new Variant(3)); // 禁用宏 不禁用SaveAs无法使用
Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method, new Object[]{inFileName,new Variant(false),new Variant(true)}, new int[9] ).toDispatch();
sheets= Dispatch.get(excel, "Sheets").toDispatch(); //得到所有sheet
int count = Dispatch.get(sheets, "Count").getInt();
sheet = Dispatch.invoke(sheets, "Item", Dispatch.Get,new Object[] { sheetName}, new int[1]).toDispatch();
Dispatch.call(sheet, "Activate"); //设置为当前活动的sheet
Dispatch.invoke(excel,"SaveAs",Dispatch.Method,new Object[]{outFile,
new Variant(57), new Variant(false),
new Variant(57), new Variant(57),new Variant(false), new Variant(true),new
Variant(57), new Variant(false),
new Variant(true), new Variant(false) },new int[1]);
/**
以上代码能够正常转换单张sheet,由于excel打开时有执行宏代码,导致部分sheet无法选择,设置当前为活动sheet失效。目前解决思路是在选中前执行宏代码将调整过的部分恢复初始化 报错:无法运行“全部解密”宏。可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用。检查excel未禁用宏,这里在禁用前执行宏代码失败,禁用宏的话SaveAs也会失败。希望帮忙看下 是否有方法可以在禁用前正常执行宏 /

龚净的主页 龚净 | 初学一级 | 园豆:152
提问于:2019-12-06 11:02
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册