Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:如何使用一个"已经"打开的workbook

1楼
chinplant 发表于:2014/6/13 15:03:09
 我已经打开了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
2楼
chinplant 发表于:2014/6/13 15:55:52
 十万火急,请各位大侠尽快帮忙,,多谢了!!
3楼
chinplant 发表于:2014/6/13 16:21:57
 实际上我想做的就是每当海龟系统发出信号时,让金字塔在“已经”打开的excel文件中如何写入一个简单的“1”字。关键是excel文件必须打开,因为别的程序需要用它。

谢谢
4楼
王锋 发表于:2014/6/13 18:22:52
VBA技术问题比较复杂,不可能马上就能给出你答案,我们正在跟踪解决你的问题,请耐心等待
5楼
guotx2010 发表于:2014/6/13 18:38:31

http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=6539&replyID=&skin=1

 

看看这个例子,不行再说!

6楼
guotx2010 发表于:2014/6/13 19:28:37

Public MyXL

Sub APPLICATION_VBAStart()
     Call Application.SetTimer(10, 500)
     GetExcelFile("D:\XXXXX.xls")          '打开指定的excel文件xxxxx.xls   
End Sub

 

'打开某个excel文件
Sub GetExcelFile(sFileName)
    '此过程暂停使用,替代过程为:GetExcel

    Dim sWinName                '窗口名
    Dim iPos
   
    '测试 Microsoft Excel 的副本是否在运行。
    On Error Resume Next    '延迟错误捕获。
    '不带第一个参数调用 Getobject 函数将
    '返回对该应用程序的实例的引用。
    '如果该应用程序不在运行,则会产生错误。
    Set MyXL = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then
  Set MyXL = CreateObject("Excel.Application")
 End if

    '将对象变量设为对要看的文件的引用。
    Set MyXL = GetObject(sFileName)
   
    iPos = InStrRev(sFileName, "\", -1, vbTextCompare)
    sWinName = Mid(sFileName, iPos + 1, Len(sFileName) - iPos - 4)
   
    '设置其 Application 属性,显示 Microsoft Excel。
    '然后使用 MyXL 对象引用的 Windows 集合
    '显示包含该文件的实际窗口。
    MyXL.Application.Visible = True
    MyXL.Application.ScreenUpdating = True
    MyXL.Parent.Windows(1).Activate
    MyXl.Application.Sheets(1).Visible=true
End Sub

 

'关闭Excel
Sub CloseExcel()
    On Error Resume Next
    MyXL.Application.DisplayAlerts = False
    'MyXL.Application.Save
    MyXL.Application.Quit
'    Set MyXL = Nothing    '释放对该应用程序
End Sub

 

Sub Application_Timer(ID)

    on error resume next
    application.MsgOut "正在导出行情..."
    Set Report1 = marketdata.GetReportData("IF00","ZJ")
     MyXL.Application.activesheet.Range("C1") =  report1.label
     MyXL.Application.activesheet.Range("D1") =  report1.BuyPrice1

End Sub

7楼
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"


谢谢

8楼
guotx2010 发表于:2014/6/14 21:17:04

你好好看getExcelFile那个过程,你修改了,变成每次都打开文件,当然就会出现你上面的错误了,应该是判断有没有打开那个文件,有,就直接定位到该文件,没有才打开。

也罢,我直接给你做好吧,你自己在d:\建立一个excel文件test.xlsx,这个肯定会吧,然后导入这个项目文件,运行就看到结果了。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:excel.rar

[此贴子已经被作者于2014/6/14 21:17:47编辑过]
9楼
chinplant 发表于:2014/6/16 12:24:59
 谢谢你的程序,直接写出程序反映你对用户的认真负责的态度,多谢!!!
我导入了你的vbs文件,同时打开我的test.xlsx,和打开金字塔IF价格但还是看到一个新的标有”excel“名字的excel文件,原来的test.xlxs还是没有被更新,新的excel也只是灰色的界面看不到任何cells。
10楼
chinplant 发表于:2014/6/16 12:27:36

请看我的屏幕截图。多谢


图片点击可在新窗口打开查看此主题相关图片如下:截图20140616120913446.jpg
图片点击可在新窗口打开查看
共11 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.04297 s, 3 queries.