2012-11-30 45 views
0

任何人都可以請求解釋下列公式的語法失敗的位置嗎?將vlookup與文本字符串結合起來

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

公式工作正常,如果我想簡單地使用vlookup,但是當我嘗試添加文本,我整個語法錯誤到來。有沒有更好的方法來做到這一點,而不使用FormulaLocal。我可以通過其他方式將vlookup與文本結合起來嗎?

謝謝!

+0

你爲什麼不這樣做的另一個小區'CONCAT vlookup'和'text'並指出該單元格中'formulalocal'? – bonCodigo

+0

OP正試圖在代碼中更改'FormulaLocal',而不是在電子表格單元格中。 –

回答

1

的FormulaLocal財產(和Formula屬性)expec一個字符串(或字符串文字),它與您從公式欄中鍵入的公式相同。你試圖設置一個無效的字符串文字:

​​

爲了兩個字符串,你需要使用&結合,否則就是無效的VBA代碼:

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

的字符串文字用開始和結束雙引號定義。你怎麼把一個雙引號插入字符串文字?在VBA你把兩個雙引號:

"=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"")" 
+0

這個工作?Dim Text As String Text =「some words」 Range(「A97」)。Select Selection.FormulaLocal =「= vlookup(」&i&「,輸入!A5:B43,2,false)「&Text – Chris2015

+0

就VBA語法而言,它將起作用,但生成的論壇將看起來像這樣(比如'i'是5):'」= vlookup(5,inputs!A5 :B43,2,false)一些單詞',這不是一個有效的Excel公式,我不知道你是否會得到一個VBA錯誤,或者Excel工作表只顯示一個錯誤代碼 –

+0

好吧。我使用雙引號的文字在公式內。這種做法被稱爲字符串文字。使用&只是一個字符串。 – Chris2015

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 & """" 
+0

Selection.FormulaLocal =「= vlookup(」&i&「,inputs!A5:B43,2,false)」&「some words」 – Chris2015

+0

我最初試過這個公式,但是編譯器不會接受這個語法。我嘗試添加「一些單詞」和「一些單詞」「 – Chris2015

+0

」VLookup「本身是否可以與」某些單詞「一起工作?如果是這樣的話,」FormulaLocal「接受的問題 – bonCodigo

相關問題