我需要一些帮助。我有一个工作簿(A),我想要打开另一个工作簿(B)并运行B中的宏。 工作簿(B)有一个宏,它与另一个工作簿(C)建立sql连接来提取数据,在工作簿(B)中运行这个宏很好,但是如果我从工作簿(A)打开工作簿(B)并运行宏,我会从Windows获取一条消息“该文件已打开”(WorkBooK(C))。 如何跳过此消息。vba Excel数据连接
我得到的错误时打开连接数据。
打开工作簿(B)的代码是:
Sub OpenWorkBookandRun()
tarPath = "..............\"
strfilename = "..........xlsm"
Application.Workbooks.Open tarPath & strfilename
'Run Macro
Workbooks(strfilename).Activate
Application.Run "'................'!Module1.Macro"
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
而在工作簿(B)的代码来打开数据来源是:
' Establezco los parametros de la conexion ADO, el RecordSet y la Cadena de conexion
Set oCONN = New ADODB.Connection
Set oRS = New ADODB.Recordset
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & OrigDatos & ";Extended Properties=""Excel 12.0;HDR=Yes;"";"
' Abro la conexion y ejecuto la sentencia SQL
If Not (oCONN Is Nothing) Then
If (oCONN.State And adStateOpen) = adStateOpen Then oCONN.Close
End If
oCONN.Open strConn <--- Line where i get the error
oRS.Open strSQL, oCONN, 1, 3
注。有时候在fisrt工作簿中,我会得到相同的消息,但只是有时会发生,并且我不知道为什么,因为任何人都有打开数据的起源
嗨,谢谢。 Worbook(C)是开放的,但我只需要读取一张包含数据的表格。当我运行工作簿B并建立到C的连接时,不会收到消息或错误,连接将以读取模式打开工作簿C.我会尝试只读的参数。 –