打开时将实时值从一个Excel工作簿读取到另一工作簿

时间:2019-04-17 15:09:20

标签: excel vba copy

由于它是非Windows应用程序,因此我希望能够使用VBA从一个OPEN Excel工作簿向另一个应用程序读取和写入值,而无需使用“作为工作表”功能。这可能吗?

我发布的代码来自使用脚本的PLC应用程序。

由于文件已经打开,我只需要知道.open之外还要使用什么功能。

Dim objXLApp, objXLWb, objXLWs1, objXLWs2, objXLWs5

Set objXLApp = CreateObject("Excel.Application")

objXLApp.Visible = True

Set objXLWb = objXLApp.Workbooks.Open("File.xlsm")
'~~> Working with Sheet1
Set objXLWs1 = objXLWb.Sheets(1)
Set objXLWs2 = objXLWb.Sheets(2)
Set objXLWs5 = objXLWb.Sheets(5)

'~~>Write SetPoints to Sheet1
With objXLWs1

 '~~>Write 

 .Cells(6,23).value = SmartTags("Job Time Sec to OEE")
 .Cells(6,23).value = SmartTags("Run Time Sec to OEE")


End With

''~~>Write Setup Values to Sheet2

'~~> Save as Excel File (xls) to retain format
objXLWb.Save

objXLWb.Close (False)

Set objXLWs1 = Nothing
Set objXLWs2 = Nothing
Set objXLWs5 = Nothing
Set objXLWb = Nothing

objXLApp.Quit
Set objXLApp = Nothing

1 个答案:

答案 0 :(得分:0)

如果工作簿已经打开,则可以按名称将其引用为Workbooks集合的一部分。 Set objXLWb = objXLApp.Workbooks("File.xlsm")

编辑:由于您已经更改了问题,所以我不再确定您要问什么。我的猜测是,您的“已打开”工作簿没有在使用Set objXLApp = CreateObject("Excel.Application")创建的同一Excel实例中打开,因此您需要引用现有 Excel应用程序,然后打开该应用程序中的打开的工作簿。