以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 如何使用一个"已经"打开的workbook (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=66134) |
||||
-- 作者:chinplant -- 发布时间:2014/6/13 15:03:09 -- 如何使用一个"已经"打开的workbook 我已经打开了excel的test.xlsx文件. 目的是想让VBS macro 更新其中的一个CELL, 比如 cells(2,2) Set objExcel = GetObject("", "Excel.Application") -- okay 可以定义application, 但workbook却遇到问题 我不想用workbooks.add 或workbook.open 因为我必须用"已经"打开的一个固定的workbook (test.xlsx),不想用一个新的workbook. 我试过active workbook, this workbook, work activate (看下面例子) 但都出现错误. 请帮助一下! 谢谢 \' Workbooks(sfname).Sheets("Sheets1").Activate \' objExcel.Application.Workbooks(sfname).Activate() \' set wkb = objExcel.Excel.Workbooks(1) \' objExcel.ActiveWorkbook.Sheets(1).Select \' objExcel.ActiveWorkbook.Activesheet \' Set wkb = objExcel.Workbooks(1) Set wkb = Workbooks(1).Worksheets(1) \' wkb.Activate \' Set wks = wkb.ActiveSheet \' objExcel.Visible = True \' wks.Activate \' set wkbname = ActiveWorkbook.Name \' objExcel.Workbooks(sfname).Activate \' activeworkbook.sheets(1).select() worksheets("Sheet1").Activate \'set xlBook = objExcel.WorkBooks.Open(filename) \'set xlSht = objExcel.activesheet \' objExcel.WorksSheets( "Sheet1" ).Activate \' Dim wkb As Workbook \' set wkb = objExcel.Workbooks(1) objExcel.Visible = True \' set objExcel.Workbooks(1).Sheets(1).Cells(2,2).Value = 100 \' Set wkb = objExcel.Application.Workbooks(1) \' wkb.Activate \' objExcel.WorkBooks.Add |
||||
-- 作者:chinplant -- 发布时间:2014/6/13 15:55:52 -- 十万火急,请各位大侠尽快帮忙,,多谢了!! |
||||
-- 作者:chinplant -- 发布时间:2014/6/13 16:21:57 -- 实际上我想做的就是每当海龟系统发出信号时,让金字塔在“已经”打开的excel文件中如何写入一个简单的“1”字。关键是excel文件必须打开,因为别的程序需要用它。 谢谢 |
||||
-- 作者:王锋 -- 发布时间:2014/6/13 18:22:52 -- VBA技术问题比较复杂,不可能马上就能给出你答案,我们正在跟踪解决你的问题,请耐心等待 |
||||
-- 作者:guotx2010 -- 发布时间:2014/6/13 18:38:31 -- http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=6539&replyID=&skin=1
看看这个例子,不行再说! |
||||
-- 作者:guotx2010 -- 发布时间:2014/6/13 19:28:37 -- Public MyXL Sub APPLICATION_VBAStart()
\'打开某个excel文件 Dim sWinName \'窗口名 \'将对象变量设为对要看的文件的引用。
\'关闭Excel
Sub Application_Timer(ID) on error resume next End Sub |
||||
-- 作者:chinplant -- 发布时间:2014/6/13 19:54:57 -- 非常感谢你的回复, 我刚刚试过,但它说该excel文件已经打开了被锁住。 strSheet = "Sheet1" filename = "C:\\Users\\Public\\test2.xlsx" sfname = "test2.xlsx" Set objExcel = GetObject("", "Excel.Application") Set objExcel = GetObject(filename) objExcel.Application.Visible = True objExcel.Application.ScreenUpdating = True objExcel.Parent.Windows(1).Activate objExcel.Application.Sheets(1).Visible=true objExcel.Cells(2, 2) = "1" 谢谢 |
||||
-- 作者:guotx2010 -- 发布时间:2014/6/14 21:17:04 -- 你好好看getExcelFile那个过程,你修改了,变成每次都打开文件,当然就会出现你上面的错误了,应该是判断有没有打开那个文件,有,就直接定位到该文件,没有才打开。 也罢,我直接给你做好吧,你自己在d:\\建立一个excel文件test.xlsx,这个肯定会吧,然后导入这个项目文件,运行就看到结果了。
[此贴子已经被作者于2014/6/14 21:17:47编辑过]
|
||||
-- 作者:chinplant -- 发布时间:2014/6/16 12:24:59 -- 谢谢你的程序,直接写出程序反映你对用户的认真负责的态度,多谢!!! 我导入了你的vbs文件,同时打开我的test.xlsx,和打开金字塔IF价格但还是看到一个新的标有”excel“名字的excel文件,原来的test.xlxs还是没有被更新,新的excel也只是灰色的界面看不到任何cells。 |
||||
-- 作者:chinplant -- 发布时间:2014/6/16 12:27:36 -- 请看我的屏幕截图。多谢 ![]() ![]() |