Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Domenico,
dovrei leggere dei dati da un file che può essere chiuso oppure aperto.
Va bene se uso:
MyFile="c:\miacartella\miofile.xlsm"
Set oExcel = New Excel.Application
oExcel.Workbooks.Open MyFile, ReadOnly = True?
Volendo, certo!
Ad esempio, il seguente codice funziona a me:
'=========>>
Option Explicit
'--------->>
Public Sub NuovoIstanzaExcel()
Dim oExcel As Excel.Application
Dim srcWB As Workbook
Dim srcSH As Worksheet
Dim srcRng As Range
Dim vVal As Variant
Const MyFile = "C:\Users\NDJ\Documents\Pippo.xlsm"
Const sFoglio As String = "Foglio1"
Const sIntervallo As String = "A1"
Set oExcel = New Excel.Application
Set srcWB = oExcel.Workbooks.Open(MyFile, ReadOnly:=True)
Set srcSH = srcWB.Sheets(sFoglio)
Set srcRng = srcSH.Range(sIntervallo)
vVal = srcRng.Value
srcWB.Close SaveChanges:=False
oExcel.Quit
Set oExcel = Nothing
Debug.Print "NuovoIstanzaExcel " & vbTab & vVal
End Sub
'<<=========
Comunque, non è chiaro perchè vorresti creare una nuova istanza di Excel. A mio modesto avviso, più veloce e più efficiente sarebbe qualcosa del genere:
'=========>>
Option Explicit
'--------->>
Public Sub StessaIstanzaExcel()
Dim srcWB As Workbook
Dim srcSH As Worksheet
Dim srcRng As Range
Dim vVal As Variant
Const MyFile = "C:\Users\NDJ\Documents\Pippo.xlsm"
Const sFoglio As String = " "Foglio1"
Const sIntervallo As String = "A1"
Set srcWB = Application.Workbooks.Open(MyFile)
Set srcSH = srcWB.Sheets(sFoglio)
Set srcRng = srcSH.Range(sIntervallo)
vVal = srcRng.Value
srcWB.Close SaveChanges:=False
Debug.Print "StessaIstanzaExcel " & vbTab & vVal
End Sub
'<<=========
===
Regards,
Norman