创建Excel时公式显示为#NAME

时间:2019-07-16 06:35:48

标签: excel vb.net excel-formula

我正在尝试使用包含公式的二维数组创建一个excel。当我将数组放到excel时,所有公式都显示为#NAME,直到您单击它们并按Enter键。

我尝试将其粘贴一次,将公式更改为类似=SUMA (A3;B3)的简单形式,它也给了我#NAME

这是我用来创建数组的代码:

Dim arrayAgentesResumen(rsAgentesResumen.RecordCount + 1, numeroCamposResumenAgentes)

For index As Integer = 0 To numeroCamposResumenAgentes
    arrayAgentesResumen(0, index) = arrayTitulosResumen(index)
Next

While Not rsAgentesResumen.EOF
    arrayAgentesResumen(contadorAgentesResumen, 0) = rsAgentesResumen.Fields("agent").Value.ToString.Trim
    arrayAgentesResumen(contadorAgentesResumen, 1) = rsAgentesResumen.Fields("media").Value.ToString.Trim
    arrayAgentesResumen(contadorAgentesResumen, 2) = rsAgentesResumen.Fields("suma").Value.ToString.Trim
    arrayAgentesResumen(contadorAgentesResumen, 3) = rsAgentesResumen.Fields("serviciosAntiguos").Value.ToString.Trim
    arrayAgentesResumen(contadorAgentesResumen, 4) = "=CONTAR.SI('Agentes detalles'!C:C,'Agentes resumen'!A" & (contadorAgentesResumen + 1) & ")"
    arrayAgentesResumen(contadorAgentesResumen, 5) = "=SI(Y(D" & (contadorAgentesResumen + 1) & "=0,E" & (contadorAgentesResumen + 1) & "<>0),""SI"",""NO"")"
    arrayAgentesResumen(contadorAgentesResumen, 6) = "=SI(E" & (contadorAgentesResumen + 1) & ">D" & (contadorAgentesResumen + 1) & ",""SI"",""NO"")"
    arrayAgentesResumen(contadorAgentesResumen, 7) = rsAgentesResumen.Fields("serviciosRls").Value.ToString.Trim
    arrayAgentesResumen(contadorAgentesResumen, 8) = rsAgentesResumen.Fields("estadoRls").Value.ToString.Trim

    contadorAgentesResumen += 1

    rsAgentesResumen.MoveNext()
End While

在这里,我为两个数组创建了两个Excel工作表,第一个工作正常:

Dim xlApp = New Microsoft.Office.Interop.Excel.Application
Dim StartRow, StartCol

xlApp.Workbooks.Add()
xlApp.Sheets("Hoja1").Name = "Agentes detalles"

'Indico en que rango estara la informacion
StartRow = 1
StartCol = 1

xlApp.Range("A1").Resize(detalle.GetUpperBound(0) + 1, detalle.GetUpperBound(1) + 1).Formula = detalle

xlApp.Worksheets.Add()
xlApp.Sheets("Hoja2").Name = "Agentes resumen"

xlApp.Range("A1").Resize(resumen.GetUpperBound(0) + 1, resumen.GetUpperBound(1) + 1).Formula = resumen

xlApp.Range("B:B").NumberFormat = "0"
xlApp.Range("C:C").NumberFormat = "0"
xlApp.Range("D:D").NumberFormat = "0"

它应该显示公式的结果,但只给我#NAME,其他字段可以正常工作。

0 个答案:

没有答案