用值填充源单元格后,Excel 不会更新公式值

用值填充源单元格后,Excel 不会更新公式值

我采取了 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$”,我将用值填充

“Formula$”,其中我有一个公式,它总结了“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 文件中验证值在“公式$”表中,但它们没有显示更新。但是如果我转到单元格 B1,按 F2 然后按 Enter,公式结果将使用正确的值进行更新。我期望的正确行为是公式结​​果会自动显示更新,而无需按 F2 然后按 Enter。

注意:工作簿、模板和生成的文件均已启用自动更新。

我不知道为什么会发生这种情况,因为如果使用键盘(而不是代码)手动填充值,它可以正常工作。

什么原因导致了这种现象?

注:模板文件可在此处下载https://www.dropbox.com/s/duii11fyfh7u2kw/libro.xlsx?dl=0

相关内容