Piszę narzędzie, które synchronizuje prostą bazę danych z arkuszami Excel. Każda pozycja w tabeli w bazie danych odpowiada jednemu wierszowi w arkuszu roboczym. Przeczytałem arkusz Excela w narzędziu przy użyciu C# i interfejsu interopowego programu Excel, a następnie porównałem wartości elementów (tj. Jedną z kolumn w arkuszu Excela) po synchronizacji, aby upewnić się, że są równe.Jak uzyskać Excel ignorować apostrof na początku komórki
Wczoraj znalazłem przypadek, gdy porównanie nie było prawdą:
"'<MedalTitle>' Medal - <MedalDescription>"
"<MedalTitle>' Medal - <MedalDescription>"
Drugi to jeden Czytałem z Excela, a jak widać to pominięty pierwszy apostrof. Czy istnieje sposób, aby powiedzieć programowi Excel, aby traktował komórkę jako zwykły tekst (nie, po prostu ustawienie formatowania komórki nie pomaga)?
Próbowałem nawet skopiować wartość ('hello') komórki w VBA tak:
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
Rezultatem było to, że wartość komórki docelowej jest zawsze hello”
Jeśli nie ma sposobu, będę musiał zrobić coś brzydki jak
if (dbitem.value[0] == ''')
{
// stuff
}
else
{
// regular comparison
}
Nie, to nie pomaga - spróbuj sam. Zobacz moją zaktualizowaną funkcję VBA. – Srekel