Faccio 3 passaggi:
Sulla base di un modello, creo un nuovo file Excel tramite il codice (funziona benissimo):
Shared Sub FillExcel() Dim extension As String = ".xlsx" Dim sourcePath As String = "c:\Temp\libro" & extension Dim targetPath As String = "c:\Temp\libro - " & DateTime.Now.Hour & DateTime.Now.Minute & extension 'Generar archivo nuevo a partir del anterior FileIO.FileSystem.CopyFile(sourcePath, targetPath, True)
Il modello ha due fogli:
"Circuito1 $", che riempirò di valori
"Formula $", dove ho una formula che riassume i valori in "Circuito1 $"
Mi riempio il nuovo file di Excel tramite il codice come segue:
Dim strInsertIntoExcel As String = "" Dim cn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & targetPath & ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=0'" strInsertIntoExcel = "INSERT INTO [Circuito1$] (Fecha,Hora,Valor) values(@date,@time,@values)" Using cnn As New System.Data.OleDb.OleDbConnection(cn) cnn.Open() Dim cant As Integer = 0 Dim value As Decimal While cant < 10 value = Convert.ToDecimal(cant * DateTime.Now.Second) Dim fecha As Object = DateTime.Now Using cmd As OleDbCommand = cnn.CreateCommand() cmd.Parameters.AddWithValue("@date", "fecha") cmd.Parameters.AddWithValue("@time", "daf1") cmd.Parameters.AddWithValue("@values", value) Console.WriteLine(value) cmd.CommandText = strInsertIntoExcel cmd.ExecuteNonQuery() End Using cant = cant + 1 End While End Using
- Io verifico nel recente aggiornamento file Excel i valori nella "Formula $" foglio, ma non appaiono aggiornati. Ma se vado alla cella B1, faccio F2 e quindi premo Invio, il risultato della formula viene aggiornato con i giusti valori. Quello che mi aspetto come il comportamento giusto è che il risultato della formula venga mostrato aggiornato automaticamente, senza dover premere F2 e quindi Invio.
NOTA: l'aggiornamento automatico è abilitato nelle cartelle di lavoro, nel modello e nei file generati.
Non riesco a capire perché stia accadendo, perché se riempi i valori manualmente, usando la mia tastiera (invece del codice), funziona bene.
Cosa sta causando questo comportamento?
NOTA: il file modello può essere scaricato qui https://www.dropbox.com/s/duii11fyfh7u2kw/libro.xlsx?dl=0
application.calculate
?