2009-11-24 55 views
4

我正在使用VBScript,如何在字符串中找到連字符「 - 」並將字符放在新字符串中?vbscript如何在字符串中找到「 - 」並將字符放在新字符串中?

基本上我的計算機名與房號

PC1-3(室3),PC1-4(室4)等

我使用

Dim roomArray(2) 
roomArray = Array("-1", "-2", "-3") 

Dim item 
For each item in roomArray 
If instr(strComputerName, item) 
    ..do something 
End If 
Next 

但我結束由於包含「-3」的房間-33等會導致誤報,所以如果我在字符串中找到「 - 」並將後面的字符放入字符串中,我可以檢查完整字符串而不是使用instr。

感謝您的任何幫助。

回答

2

這將讓最後一個連字符後面的所有文字發現:在你的榜樣

Function GetRoomNumber(strComputerName) 
    Dim hyphenIndex 

    hyphenIndex = InStrRev(strComputerName, "-") 
    If hyphenIndex > 0 Then 
     GetRoomNumber = Mid(strComputerName, hyphenIndex+1) 
    End If 
End Function 

用法是:

Dim roomArray(2) 
roomArray = Array("-1", "-2", "-3") 

Dim item, index 

For index = LBound(roomArray) To UBound(roomArray) 
item = roomArray(index) 
If ("-" & GetRoomNumber(strComputerName)) = item Then 
    ..do something 
End If 
Next 

或者短版本w應該(沒有定義數據驗證功能):

... 
If Mid(strComputerName, InStrRev(strComputerName, "-")) = item Then 
... 
+0

嗨敬畏,感謝您的工作。由於'item'似乎是空的,我遇到了問題。爲什麼我不能使用MsgBox(item)?它顯示一個空的消息框。謝謝 Dim item 對於房間中的每個項目Arrayray \t MsgBox(item) – Jamie 2009-11-24 12:39:23

1

您需要檢查strComputerName是否以dash-roomNumber結尾。

if Right(strComputerName,Len(item))=item Then...  
1

你侃使用權和INSTR檢索此

dim s 

s = "PC1-3 (room 3)" 

msgbox right(s, len(s) - instr(s,"-")) 
相關問題