Estoy escribiendo una herramienta que sincroniza una base de datos simple con hojas de Excel. Cada elemento en una tabla en la base de datos corresponde a una fila en la hoja de trabajo. Leí la hoja de Excel en la herramienta usando C# y la interfaz de interoperabilidad de Excel, luego comparé los valores de los elementos (es decir, una de las columnas en la hoja de Excel) después de la sincronización solo para asegurarme de que son iguales.Cómo hacer que Excel ignore el apóstrofo al principio de la celda
Ayer me encontré con un caso en el que la comparación no era cierto:
"'<MedalTitle>' Medal - <MedalDescription>"
"<MedalTitle>' Medal - <MedalDescription>"
El segundo es el que yo he leído desde Excel y como se puede ver que ha saltado el primer apóstrofe. ¿Hay alguna manera de decirle a Excel que trate la celda como solo texto (no, solo establecer el formato de la celda no ayuda)?
Incluso he intentado copiar el valor ('hola') de una celda en VBA así:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Offset(1, 0).Value = Target.Worksheet.Range("b2").Value
Target.Offset(2, 0).Value = Target.Worksheet.Range("b2").Formula
Target.Offset(3, 0).Formula = Target.Worksheet.Range("b2").Formula
Target.Offset(4, 0).Formula = Target.Worksheet.Range("b2").Value
End Sub
El resultado fue que el valor de la celda objetivo es siempre hola'
Si no hay manera, voy a tener que hacer algo feo como
if (dbitem.value[0] == ''')
{
// stuff
}
else
{
// regular comparison
}
No, eso no ayuda, pruébelo usted mismo. Ver mi función actualizada de VBA. – Srekel