2016-07-13 51 views
0
englishReasonsToGoToSecondFloor = "test" & ";" & "exam & pay" & ";" & " possible fake" 

所以我的值可能包含一個&或(空間),或只是一個字。每個項目由「;」分開我InStr函數總是返回0

所以最終的名單將看起來像「測試,考試&工資;可能的假」(真正的名單是更長的時間)

當用戶從列表框中選擇一個項目,我要趕緊比較選擇在變量的話(如果有更好的方法來比較,請讓我知道)

rowValue = Trim(listboxTest.Column(1)) 
englishResult = InStr(1, rowValue, englishReasonsToGoToSecondFloor, CompareMethod.Text) 

我可以將鼠標放在rowValue,我看到有一個值。

rowValue contains "possible fake" 

但englishResult始終爲0

+0

我不知道你能做到這樣,你正在尋找完整的字符串時,與連接它們像「測試; examp & pay;可能假的」,這是你要找什麼,我認爲你需要運行多個instr。 –

+2

提前半小時發佈的http://stackoverflow.com/questions/38353529/my-instr-keeps-telling-me-its-mismatched的副本。要說確切的重複,但最後三行是不同的。 –

回答

1

應該像下面

englishResult = InStr(1, englishReasonsToGoToSecondFloor, rowValue, CompareMethod.Text) 

EDIT

的語法INSTR功能是

InStr([Start], String1, String2, [Compare]) 

其中,

[開始] - 一個可選的整數參數,表示您想要從中開始搜索的位置。如果省略,則[開始]參數的默認值爲1.

String1 - 要搜索的字符串。

String2 - 要搜索的子字符串。

[比較] - 一個可選參數,指定要進行比較的類型。 這可以是任何下列值:

vbBinaryCompare - 執行二進制比較

vbTextCompare - 執行文本比較

vbDatabaseCompare - 執行數據庫比較

如果省略, [Compare]參數採用默認值vbBinaryCompare。

+0

爲了未來的讀者,你能解釋爲什麼這能解決問題嗎? – litelite

+0

說明:http://stackoverflow.com/a/38354102/3961708 :) – cyboashu

-1

englishResult = InStr(1, rowValue,"test", CompareMethod.Text) if englishResult=0 then englishResult = InStr(1,rowValue, "exam & pay", CompareMethod.Text) if englishResult=0 then englishResult = InStr(1, rowValue, " possible fake", rowValue,CompareMethod.Text)

2

不知道訪問..但INSTR方法在Excel中VBA工作與主字符串搜索字符串所以

InStr(1,englishReasonsToGoToSecondFloor, rowValue , CompareMethod.Text)前這應該工作。