2

Я делаю 3 шага:

  1. На основе шаблона я создаю новый файл Excel с помощью кода (он отлично работает):

    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)
    

Шаблон имеет два листа:

"Circuito1 $", который я буду заполнять значениями

«Формула $», где у меня есть формула, которая суммирует значения в «Circuito1 $»

  1. Я заполняю новый файл Excel через код следующим образом:

        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
    
    1. Я проверяю в недавно обновленном файле Excel значения в таблице «Formula $», но они не отображаются обновленными. Но если я иду в ячейку B1, делаю F2 и затем нажимаю Enter, результат формулы обновляется с правильными значениями. То, что я ожидаю как правильное поведение, - то, что результат формулы отображается обновленным автоматически, без необходимости нажимать F2 и затем Enter.

ПРИМЕЧАНИЕ. Автоматическое обновление включено для рабочих книг, шаблона и созданных файлов.

Я не могу понять, почему это происходит, потому что, если заполнить значения вручную, используя мою клавиатуру (а не код), он работает нормально.

Что вызывает это поведение?

ПРИМЕЧАНИЕ. Файл шаблона можно загрузить здесь https://www.dropbox.com/s/duii11fyfh7u2kw/libro.xlsx?dl=0.

0