0

次の式の構文がどこで失敗しているのか、誰でも説明できますか?

Selection.FormulaLocal = "=concatenate(vlookup(" & i & ", _
inputs!A5:B43,2,false), " some words")""

単純に を使用する場合は数式は正常vlookupに機能しますが、テキストを追加しようとすると構文エラーが発生します。を使用せずにこれを行うより良い方法はありますかFormulaLocal。vlookup とテキストを他の方法で組み合わせることができますか?

ありがとう!

4

2 に答える 2

1

FormulaLocal プロパティ (および Formula プロパティ) は、数式バーから入力するのと同じ数式である文字列 (または文字列リテラル) を想定しています。無効な文字列リテラルを設定しようとしています:

 "=concatenate(vlookup(" & i & ", inputs!A5:B43,2,false), " some words")""
'<   string literal    >< VBA ><     string literal       ><    VBA  ><string literal>

2 つの文字列を結合するには、 を使用する必要があります。使用&しないと、無効な VBA コードになります。

 "=concatenate(vlookup(" & i & ", inputs!A5:B43,2,false), " & some words & ")""
'<   string literal    >< VBA ><     string literal       ><       VBA     ><string>

文字列リテラルは、開始と終了の二重引用符で定義されます。文字列リテラルに二重引用符を挿入するにはどうすればよいですか? VBA では、二重引用符を 2 つ置きます。

 "=concatenate(vlookup(" & i & ", inputs!A5:B43,2,false), ""some words"")"
'<   string literal    >< VBA ><           string literal                >
'Resulting formula (i=5): =concatenate(vlookup(5, inputs!A5:B43,2,false), "some words")

これはすべて VBA レベルであることに注意してください。結果の文字列も、Excel で有効な数式である必要があります。たとえば、iが数値ではなく単語の場合、式は次のようになります。

=concatenate(vlookup(a word, inputs!A5:B43,2,false), "some words")

これは無効な Excel 構文です。この場合の解決策は、 を二重引用符で囲むことiです。

"=concatenate(vlookup(""" & i & """, inputs!A5:B43,2,false), ""some words"")"
于 2012-11-30T07:27:11.280 に答える
0

&insted を追加してみてくださいconcat

="text" & (vlookupformula)

あなたのコードは、

Selection.FormulaLocal = "= vlookup(" & i & ", _
inputs!A5:B43,2,false) & " some words"

次のことを試してみてください:

Dim strWords = "some words"
Selection.formula = "= vlookup(" & i & ", _
    inputs!A5:B43,2,false) "
selection.Formula = .Formula & " & """ & strWords & """"
于 2012-11-30T07:20:49.507 に答える