3

私はDelphiXE2を使用しており、次のコードを使用して、Word(2010)テンプレートのブックマークに文字Yを入力します。

Doc.Bookmarks.Item('NS').Range.InsertAfter('Y');

ドキュメントを除いて、文字Yの代わりに数字89が表示されます。

障害は私のコードまたはWordドキュメントにある可能性がありますか?どんな方向でもありがたく受けました。

4

1 に答える 1

4

あなたのリテラル'Y'は文字列リテラルではなく文字リテラルです。のASCII コードYは 89です。

したがって、 aCharではなく aを渡していstringます。Word がその整数の文字列表現を取得する必要がある場合、整数89をそのテキスト表現である string に変換するだけ'89'です。

この問題を回避するには、次のようにします。

var
  Text: string;
....
Text := 'Y';
Doc.Bookmarks.Item('NS').Range.InsertAfter(Text);

InsertAfter()アイデアは、文字ではなく文字列を確実に渡すことです。はバリアント パラメータをInsertAfter()受け取るため、バリアントに格納されているペイロードのタイプに注意する必要があることに注意してください。

于 2012-12-10T10:21:38.387 に答える