怎么样用vba调用excel表格数据插件

我要文库申报
查看: 10270|回复: 11
如何使用VBA在其他工作簿中插入控件并写入代码?
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
网站名称: Excel技巧网 | Excel专家栖息谷 | 微软中文技术社区合作伙伴
署名作者: chrisfang
版权声明: 版权归本站与作者共有 除本站官方外非作者本人转载须经许可并注明出处
适用版本: 03以前版本&
语言环境: 简体中文
学习方法: 掌握Excel技巧的关键是动手操作
下载 ≠ 知识
免费注册成为本站会员,享用更多功能,结识更多Office办公高手!
才可以下载或查看,没有帐号?
本帖最后由 chrisfang 于
15:23 编辑
Q:如何使用VBA在其他工作簿中插入控件并写入代码?
A:以下示例代码可在新建工作簿中插入一个表单按钮控件,并为此按钮指定名称为“test”的宏,同时在其VBA工程中新建模块,在此模块中写入test宏的VBA代码。
Sub CreateSub()
& & Dim wk As Workbook
& & Application.ScreenUpdating = False
& & strCode = &&& && && && && && && && && && && && && && && && && && && && && && && && && && &&&'写入目标模块中的指定VBA代码
& & strCode = strCode & &Sub test()& & vbCrLf
& & strCode = strCode & &Msgbox(&&hello world!&&)& & vbCrLf
& & strCode = strCode & &End Sub& & vbCrLf
& & Set wk = Workbooks.Add
& & Set newmodule = wk.VBProject.VBComponents.Add(1)
& & 'With ActiveWorkbook.VBProject.VBComponents(newmodule.Name).CodeModule& &&&下面的代码可将code创建于目标模块的原有代码之后
& & '.InsertLines .CountOfLines + 1, strCode
& & 'End With
& & newmodule.CodeModule.AddFromString strCode
& & ActiveWorkbook.Sheets(1).Buttons.Add(200, 100, 60, 30).Select& && && && && && && && &&&'插入表单按钮控件
& & Selection.OnAction = ActiveWorkbook.Name & &!test&& && && && && && && && && && && && && && & '指定按钮的宏
& & ActiveWorkbook.SaveAs ThisWorkbook.Path & &\test.xlsm&, xlOpenXMLWorkbookMacroEnabled
& & ActiveWorkbook.Close False
& & Application.ScreenUpdating = True
& & MsgBox &已生成包含VBA工程的工作簿:test.xlsm!&
End Sub
复制代码
(13.82 KB, 下载次数: 254)
13:45 上传
点击文件名下载附件
如何使用VBA在其他工作簿中插入控件并写入代码?
注意,要正确运行此程序,需要在宏安全性中勾选“信任VBA工程的访问”:
信任VBA工程访问.png (38.02 KB, 下载次数: 4)
如何使用VBA在其他工作簿中插入控件并写入代码?
13:45 上传
关于使用VBA程序复制指定工作簿代码的方法,可参见:
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 36, 距离下一级还需 14 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
学习了,谢谢楼主的奉献!
学office,哪能不关注全网最大的Office类微博(新浪)
初级二, 积分 64, 距离下一级还需 186 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
收藏慢慢学习。越学习,越发现自已的无知!
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 20, 距离下一级还需 30 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
学习,谢谢斑竹!
学office,哪能不关注全网最大的Office类微博(新浪)
高级二, 积分 2188, 距离下一级还需 262 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
还真厉害,学习学习……谢谢方版!
学office,哪能不关注全网最大的Office类微博(新浪)
新鲜人, 积分 0, 距离下一级还需 10 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
谢谢兄弟姐妹们了!
学office,哪能不关注全网最大的Office类微博(新浪)
新鲜人, 积分 1, 距离下一级还需 9 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
学习了,谢谢楼主的奉献!
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
学office,哪能不关注全网最大的Office类微博(新浪)
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次管理次数 次
学office,哪能不关注全网最大的Office类微博(新浪)
初级一, 积分 10, 距离下一级还需 40 积分
积分学习力
魅力值 影响力
消费券 Ti币好友
在线时间 小时
最后登录月度优秀 次
请问一下大大,如果不新建工作表,而是指定的工作表增加按钮和代码,要怎么写呢
学office,哪能不关注全网最大的Office类微博(新浪)
Excel技巧网的会员探讨问题仅代表其个人意见,与网站的立场无关。任何违反国家和地方相关法律法规的言论,本站有义务协助政府相关部门追究发言者的责任!
本站中非注明转载文章与案例的版权为作者与Excel技巧网共有。若非原文作者,本站之外任何单位或个人未经允许,不得将其用于商业用途。
若非原文作者,任何形式的非商业性转载必须获得Excel技巧网或作者允许,并注明作者和出处。
会员发表的帖子如涉及版权纠纷,须自行负责。详情请参考注册时的网站服务条款。
本站特聘法律顾问:沈学律师
Powered by馆藏&11481
TA的最新馆藏WPS论坛表格好帖推荐
Excel2007中如何使用VBA窗体
一键分享:
如果希望为应用程序添加专业级的外观,并且使用户能够更容易地输入数据,那么应该使用用户窗体。用户窗体可作为应用程序的对话框和窗口。向用户窗体添加控件和向工作表中添加控件相同。具体可以按照如下步骤:步骤1:创建一个新的工作薄。选择&编程工具&选项卡、点击&VisualBasic&按钮,打开VisualBasic编辑器。步骤2:选择工具栏上的&插入用户窗体&按钮或者选择&插入&、&用户窗体&,显示出新添加的用户窗体,如图所示。
新添加的用户窗体具有一个小的名为UserForm1的标题栏。窗体中显示的网格是用来帮助放置控件的设计工具。当窗体在应用程序中显示出来时不会出现网格。当用户窗体打开时,&工具箱&自动显示出来,如图所示。在工具箱中可以看到许多已经熟悉的控件,包括标签控件、复选框控件、选项按钮控件和命令按钮控件。此外还有几个附加的控件。步骤1:当单击&格式&工具栏上的&加粗&工具栏按钮时,这个按钮就一直保持被按下的状态(显示为凹下),表示打开了&加粗&状态。再次单击&加粗&工具栏按钮可以关闭&加粗&状态,此时按钮看上去恢复原状。步骤2:选项卡条(TabStrip),该控件是包含多个选项卡的控件。选项卡条控件用来将相关的信息进行组织和分组。例如,你也许希望用选项卡条来显示各个区域的销售信息,每个区域都有自己的选项卡。默认设置下,选项卡条包括两页,称为Tab1和Tab2。可以添加更多的选项卡。多页控件看上去和选项卡控件相似,是包括一页或者多页的控件。选项卡条控件的各个选项卡具有相似的外观,给人以相似的感觉。而多页拉件的各页是包含各自控件的窗体,它们都具有各自的布局。多页的例子是&选项&对话框中的多页控件,选择&工具&、&选项&便可以看到。步骤3:图像控件,图像控件允许向用户窗体上放置图片。图像控件可以显示的图像文件类型包括:bmp、cur、gif、ico、jpg、wmf。步骤4:RefEdit,这是工具箱中的最后一个控件。RefEdit控件看上去和文本框控件相似,不同之处在于RefEdit控件有一个按钮,通过这个按钮,可以将用户窗体折叠起来,以便选择一个区域。下图显示了一个包含RefEdit控件的窗体。
将这些控件添加到窗体上和向工作表添加控件完全一样。与在工作表上操作一样,你也能够移动控件并且改变控件的大小。用户窗体本身的大小也可以通过窗体的尺寸控制柄来调节。当对用户窗体的外观设计感到满意时,可以对它进行预览,具体方法是选择&运行&、&运行子函数/用户窗体&。这样,这个窗体就会显示在当前工作簿的前面。用窗体的关闭按钮(在窗体的右上角可以找到)可以关闭这个窗体,回到VisualBasic编辑器中。在本文中,我将用图解的方式用(JavaScript库)中的SpreadJS来一步一步实现网页上的电子表格产品SpreadSheet(例如可构建Office 365 Excel产品、Google的在线SpreadSheet).
博文简介:
Wijmo控件,是提供的HTML\JavaScript库,目前最新版是4.7.22号发布),支持jQuery UI和jQuery、jQuery Mobile、Angular.js、Bootstrap.js、Knockout.js等。同时,Wijmo提供了很多小部件(UI 控件), 以此非常方便用来构建一个Web应用程序或者网站。
其中,Wijmo的SpreadJS提供了如下特性:
由HTML5显示电子表格,可方便数据输入
可方便的设定颜色、边框、字体
可使用类似Excel公式
可兼容JSON、CSV的数据输入、输出
可进行数据分析:条件格式过滤等
Cell图形展示
日期、IME格式
自定义的输入单元格类型
触摸手势支持
图形、图像的应用
本文将涉及1~4点。
谁适合阅读本文?
如果你想了解Web站点和Web应用程序的构建技术
如果你想在短时间内构建一个复杂的SpreadSheet类型的网站
如果您想用纯前端、HTML5方式实现Web站点
必要的环境
用如下环境进行开发
Wijmo 2014 V2的Spread JS 3.20142.11
jQuery 1.8.2+
Windows 8.1 64位版本
IE浏览器11、Chrome 36.0. m
SpreadJS版本和Wijmo许可证
SpreadJS的授权包括在Wijmo企业中
Wijmo企业可选包
基本widget
SpreadJS设计器及Excel的I / O
Wijmo的个人授权GPL Version 3; 对企业用户而言,采用Wijmo企业版是性价比非常高的策略。
其中包含在Wijmo企业版中的SpreadJS设计器和Excel I\O对于加快设计SpreadSheet非常有用,如可方便的查看JSON格式数据。
使用前的准备SpreadJS CDN
为了使用的SpreadJS,请在HTML中的head标签中列出描述。(1)在对语言进行说明,(2) - (5)是读取css和jQuery SpreadJS,jQuery的UI。
&!-- SpreadJS语言设置(1)--&
&meta name="spreadjs culture" content="zh-cn" /&
&!-- jQuery(2) --&
&script src="/jquery-1.8.2.min.js" type="text/javascript"&&/script&
&!-- Wijmo CSS(3)--&
&link href="/themes/aristo/jquery-wijmo.css" rel="stylesheet" type="text/css" /&
&!-- SpreadJS(4) --&
&script src="/spreadjs/jquery.wijmo.wijspread.all.3.20142.11.min.js" type="text/javascript"&&/script&
&!-- SpreadJS CSS(5)--&
&link href="/spreadjs/jquery.wijmo.wijspread.3.20142.11.css" rel="stylesheet" type="text/css" /&
首先,让我们来显示电子表格
首先, 让我们试着简单地显示一个电子表格,您可以通过在HTML中,对wijspread元素, 安装如下的方法查看空电子表格,代码如下所示:
&script id="scriptInit" type="text/javascript"&
$(document).ready( $(function () {
// SpreadJS 初始化
$("#wijspread1").wijspread();
备注:如果不指定div元素的大小电子表格的会在浏览器显示全屏,故通过对指定大小限制电子表格的显示范围。
SpreadJS div元素的定义
&div id="wijspread1" style="width: 480 height: 320 border: 1px solid gray"/&
SpreadJS在网页上显示空电子表格如图所示:
这个简单的电子表格,此时已经神奇的拥有基本功能,可以输入数字或字母,并可以在单元格中输入公式。
通过JavaScript对象中的参数设置到wijspread方法的参数,您可以自定义初始显示。我表2列出了主要参数。
wijspread的主要参数和默认值:
sheetCount
Sheet标签页数
activeSheetIndex
最初显示表标签页
tabEditable
是否可编辑工作表名称
allowUserResize
是否更改列的大小
allowUserZoom
是否可变焦
newTabVisible
是否显示新标签页按钮
如我们可设置2个参数,来初始为3个标签页,同时隐藏新建按钮,代码如下:
&script id="scriptInit" type="text/javascript"&
$(document).ready( $(function () {
// SpreadJS 初始化
$("#wijspread1").wijspread({
sheetCount: 3, //初始化为3个标签页
newTabVisible:false //隐藏新建标签页按钮
效果截图:
在JavaScript中操作SpreadJS电子表格
如同用Visual Basic来操作Excel的VBA,实现了Excel电子表格的操作;在这里,你也可以用JavaScript操纵SpreadJS 电子表格。
为了操作电子表格,首先需要拿到wijspread对象,从而可以得到SpreadJS对象对应的表,可以获得表对象、单元格Cell对象等。然后,可以逐个进行每个对象的实际操作。
& 如下的代码是通过调节单元格大小、设置字体、以及给文本单元格中赋值、autoFitColumn / autoFitRow方法的大小的一个例子。
// 获得Spread 对象
var spread = $("#wijspread1").wijspread("spread");
// 获得当前激活的标签页
var activeSheet = spread.getActiveSheet();
// 获得第2行2列单元格
var cell = activeSheet.getCell(1, 1);
// 对这个单元格进行赋值
cell.value("Wijmo SpreadJS");
//单元格设置字体大小
cell.font("15pt 宋体");
// 当前标签页自动进行行、列适应大小
activeSheet.autoFitColumn(1);
activeSheet.autoFitRow(1);
效果截图:
通过利用getCells方法,而不是getCell方法可以操作同时获得在一个范围内的多个单元:
// 获得第2行2列 ~ 第4行5列,并设置背景色
var cell = activeSheet.getCells(1, 1, 3, 4)
cell.backColor("#00ff00");
同时,通过产生LineBorder对象的边界设置为小区设置单元,borderBottom borderRight的,borderLeft,每个方法borderTop。
// 获得LineBorder属性
var lineBorder = new $.wijmo.wijspread.LineBorder("#000000", $.wijmo.wijspread.LineStyle.thin);
// 设置边框
cell.borderTop(lineBorder);
cell.borderBottom(lineBorder);
cell.borderLeft(lineBorder);
cell.borderRight(lineBorder);
您还可以设置边框的类型,通过修改LineStyle第二个参数-使用LineBorder。下表列出主要边框设置
在Excel中,有合并单元格的要求;使用SpreadJS,您也可以使用addSpan方法来合并多个单元格在工作表上,结果如同Excel一样:
activeSheet.addSpan(0, 0, 2, 4, $.wijmo.wijspread.SheetArea.colHeader);
activeSheet.addSpan(0, 0, 2, 4, $.wijmo.wijspread.SheetArea.rowHeader);
// 单元格結合
activeSheet.addSpan(0, 0, 2, 4, $.wijmo.wijspread.SheetArea.viewport);
可以使用类似Excel的公式和函数
您可以在Excel中通过设置公式中的单元格进行计算,如求和,平均值,同样地,SpreadJS也能帮您实现类似工作:
如下的例子中,显示了平均值(AVERAGE函数)和总计(SUM函数)。您可以在单元格中设置公式的方法显示结果。
activeSheet.getCell(0, 0).value('考试成绩');
// 各科成绩
activeSheet.getCell(2, 0).value('语文');
activeSheet.getCell(2, 1).value(80);
activeSheet.getCell(3, 0).value('数学');
activeSheet.getCell(3, 1).value(70);
activeSheet.getCell(4, 0).value('英语');
activeSheet.getCell(4, 1).value(90);
activeSheet.getCell(5, 0).value('政治');
activeSheet.getCell(5, 1).value(45);
// 总分和平均分
activeSheet.getCell(6, 0).value("总分");
activeSheet.getCell(6, 1).formula("SUM(B3:B6)");
activeSheet.getCell(7, 0).value('平均分');
activeSheet.getCell(7, 1).formula("AVERAGE(B3:B6)");
使用CSV或JSON的输入和输出数据
您可以输出您在SpreadJS输入的数据,或者输入来自外部的数据到反向。格式与相应的CSV和JSON。
我会在SpreadJS对象中输入和输出的JSON的toJSON / fromJSON方法,同时也会用到JSON.stringify\parse方法。
//数据输出
function ExportJSON()
// 获得Spread 对象
var spread = $("#wijspread1").wijspread("spread");
var jsonStr = JSON.stringify(spread.toJSON());
$("#jsonCode").html(jsonStr);
////数据输入
function ImportJSON()
// 获得Spread 对象
var spread = $("#wijspread1").wijspread("spread");
var jsonObj = JSON.parse($("#jsonCode").html());
spread.fromJSON(jsonObj);
效果截图:
另一方面,以CSV的情况下,我将使用getCsv表对象中,该方法setCsv。Excel作为也就是使用CSV将容纳单元的情况下,输入和输出。您也可以指定起始位置和范围,单元格的分隔符。
//导出CSV字符串
function ExportCSV() {
// 获得Spread 对象
var spread = $("#wijspread1").wijspread("spread");
var csvString = spread.getActiveSheet().getCsv(
// 行分割字符
// 列分割字符
$("#jsonCode").html(csvString);
//导入CSV字符串
function ImportCSV() {
// 获得Spread 对象
var spread = $("#wijspread1").wijspread("spread");
var csvString = $("#jsonCode").html();
spread.getActiveSheet().setCsv(
csvString,
// CSV字符串
// 行分割字符
// 列分割字符
$.wijmo.wijspread.TextFileOpenFlags.None // 导入选项
但应注意的是,能在表4中指定的值来setCsv方法的导入标记。默认为无。
TextFileOpenFlags选项
选项的内容
ImportFormula
ncludeColumnHeader
包含列标题
IncludeRowHeader
UnFormatted
格式化的数据
在这篇文章中,通过代码实例和图解的方式,用Wijmo库提供的SpreadJS JavaScript组件来实现电子表格。SpreadJS提供了数据录入和计算,一级数据的显示,如导入和导出为CSV / JSON格式,可用于在Web浏览器上进行浏览。这种方法,对设计Web前端的类似Excel的电子表格非常有用的。
在Wijmo,可选包Wijmo企业可以作为一个选项,以采取更方便SpreadJS优势。通过使用包含在此选项Spread设计器,您可以创建一个独立的应用程序的数据SpreadJS。在Excel中的IO服务允许您与您在SpreadJS创建或导入Excel文件中的数据输出Excel文件。
---------------------------------------------------------------------------
Wijmo中文网站:&
Wijmo使用文档:
Wijmo在线Demo:
阅读(...) 评论()如何在Java项目中调用excel的表格控件? - ITeye问答
我要完成一个简单报表的设计,技术上的问题很多,目前就是如何在我的程序中调用excel的表格控件,让我的程序能显示出像excel那样的表格,然后我再去编辑,保存什么的。
请问如何调用呢?是要下个什么插件吗?还是直接有专门的语句调用呢?
当然我想的不仅仅是调用excel的表格控件,还有它的工具控件。
以此延伸的问题,我怎么调用word,系统等里的控件呢?
还是有pageoffice吧,可以在线编辑excel,还可以编程操作excel文件中的数据
直接用帆软报表就OK了,因为它是类excel设计的,所以各种界面都是和excel类似,也具有excel的相应功能
楼上两位都没有看到作者是发布在Swing版面的。
可参考如下文章。
swing实现
http://topic.csdn.net/u//01eff963-2538-48dc-a38f-4cbf2cc52837.html?90746
或者使用报表工具嵌入到JFrame中,例如ireport等工具支持Excel,word等多种格式
看看这个例子 希望对你有帮助!
package com.cari.web.
import java.io.F
import java.io.FileOutputS
import java.io.IOE
import java.io.OutputS
import java.util.I
import java.util.L
import jxl.W
import jxl.write.L
import jxl.write.WritableCellF
import jxl.write.WritableF
import jxl.write.WritableS
import jxl.write.WritableW
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseE
import com.sun.xml.internal.bind.v2.model.core.ClassI
public class outecell {
public void exportClassroom(OutputStream os) throws ParseException {
WritableWorkbook wbook= Workbook.createWorkbook(os); //建立excel文件
WritableSheet wsheet = wbook.createSheet("监测报表", 0); //工作表名称
//设置Excel字体
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
WritableCellFormat titleFormat = new WritableCellFormat(wfont);
String[] title = { "通道名称", "特征值类型", "最大值", "最小值","平均值" };
//设置Excel表头
for (int i = 0; i & title. i++) {
Label excelTitle = new Label(i, 0, title[i], titleFormat);
wsheet.addCell(excelTitle);
int c = 1; //用于循环时Excel的行号
//ClassroomService cs = new ClassroomService();
List jiancebaobiao=
//List list = cs.findAllClassroom(); //这个是从数据库中取得要导出的数据
Iterator it = jiancebaobiao.iterator();
while (it.hasNext()) {
&&&&&&& ClassroomDTO crdto = (ClassroomDTO) it.next(); //对象
Label content1 = new Label(0, c, crdto.getRoomname());
Label content2 = new Label(1, c, crdto.getCapicity().toString());
Label content3 = new Label(2, c, crdto.getRoomTypeId().toString());
Label content4 = new Label(3, c, crdto.getRemark());
wsheet.addCell(content1);
wsheet.addCell(content2);
&&& wsheet.addCell(content3);
wsheet.addCell(content4);
wbook.write(); //写入文件
wbook.close();
os.close();
} catch (Exception e) {
throw new ParseException("导出文件出错", 1);
public static void main(String[] args) {
&& File f=new File("F://监测报表.xls");
f.createNewFile();
new outecell().exportClassroom(new FileOutputStream(f));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
用java.lang.Runtime来处理,具体能不能调用excel,word之类的,还没没试过。但是我想应该是可以的!
以下是调用记事本
Runtime rt = Runtime.getRuntime();
rt.exec("cmd.exe /k start notepad");//调用记事本
以下是别人写的调用windows系统工具,http://blog.csdn.net/54powerman/archive//649086.aspx
你可以参考一下,急需分数!!!!!
由于工作中要使用Java调用4U Wma Mp3 Converter命令行将vox格式转换成WMA格式,以方便在网页中试听,所以想到用java.lang.Runtime来处理这个问题。在使用过程中碰到了一些以前没有留意的问题,整理如下:
一 最简单的调用方式
String cmd="WMAMP3Converter.exe";
java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
总结:此方法,要求可执行文件在Tomcat的工作目录中。一般的,程序安装目录都在Tomcat目录之外,所以使用绝对路径来替代以上方案。
二 使用全路径调用可执行文件
String cmd="C:\\WMA\\WMAMP3Converter.exe";
java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
总结:此调用方式执行没有问题,后来测试完成后部署到服务器上,发现问题又出来了,程序执行错误。分析原因,因为本地测试和服务器安装路径不同,服务器安装软件的目录为C:\Program Files\4U Computing\WMA MP3 Converter\,这里路径里有空格,造成空格处断开,所以命令行无法正确截取参数。
三 安全的全路径方式调用执行文件
String cmd="\"C:\\Program Files\\4U Computing\\WMA MP3 Converter\\WMAMP3Converter.exe\"";
java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
总结:在cmd串中,把可执行文件的全路径用双引号包含,就可以解决路径、文件名中包含空格、全角字符等问题。
程序运行一段时间以后,发现有时候程序执行完后转换文件没有,程序没有错误,而且服务器上有很多进程没有结束。原来调用可执行文件失败了,但是程序不知道,以为成功了,然后继续去找转换后的文件来播放导致失败。分析原因,是因为上面的方式异步的,也就是说java提交运行文件的命令以后,立即转到播放模块。
解决办法就是让命令行同步方式执行,也就是主程序等待调用可执行文件结束以后再执行。(注:当然,播放之前检查文件是否存在也是可以的,这里是说明同步异步的问题。)
四 异步方式调用外部可执行文件
Process process=
String cmd="\"C:\\Program Files\\4U Computing\\WMA MP3 Converter\\WMAMP3Converter.exe\"";
process = java.lang.Runtime.getRuntime().exec(cmd+" \""+filePath+"\" /wma");
process.waitFor();
总结:构造一个Process对象,将运行进程获取过来,控制这个进程等待调用结束再继续运行。OK。
五 顺便说一下,使用Process对象以后,可以用如下方法返回错误信息和输出信息,来进一步控制进程运行。
process.exitValue()
process.getErrorStream()
process.getInputStream()
process.getOutputStream()
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/54powerman/archive//649086.aspx
已解决问题
未解决问题

我要回帖

更多关于 excel vba 调用sub 的文章

 

随机推荐