単純なデータベースを Excel シートと同期するツールを作成しています。データベースのテーブルの各項目は、ワークシートの 1 行に対応します。C# と Excel interop com インターフェイスを使用して Excel シートをツールに読み込み、同期後にアイテムの値 (つまり、Excel シートの列の 1 つ) を比較して、それらが等しいことを確認しました。
昨日、比較が正しくないケースを見つけました。
"'<MedalTitle>' Medal - <MedalDescription>"
"<MedalTitle>' Medal - <MedalDescription>"
2 番目は、私が Excel から読み込んだもので、ご覧のとおり、最初のアポストロフィがスキップされています。セルを単なるテキストとして扱うように Excel に指示する方法はありますか (いいえ、セルの書式を設定するだけでは役に立ちません)。
次のように、VBA でセルの値 ( 'hello' )をコピーしようとしました。
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
その結果、ターゲット セルの値は常にhello'でした。
仕方が無いなら醜い事をするしかない
if (dbitem.value[0] == ''' )
{
// stuff
}
else
{
// regular comparison
}