2013-03-27 78 views
1

我有一個電子表格的循環,其中已經有一些代碼。基本上在VBA我想要做的是:在excel中跳過包含搜索字符串的行VBA

If x = Searchstring.row then GoTo continue(未定義)

我目前使用If x = activecell.row GoTo continue,但是當我到一個新行的老小區更新信息添加其中包括搜索字符串行(因爲它不再是ActiveCell.row

下面是我使用的代碼(抱歉,這是一個有點亂):

Function RelLookup(ByVal Searchstring As String, Reldate As String, _ 
       SearchRange As Range, TicketRange As Range, ReldateRange As Range, _ 
       RelRange As Range, Optional UniqueOnly As Boolean = True) 

Dim X As Long, Task As String, ReldateVal As String, TicketVal As String, ReturnRel As String, _ 
Result As String 

For X = 1 To SearchRange.Count 
If X = ActiveCell.row Then GoTo Continue 


Task = SearchRange(X).Value 
ReldateVal = ReldateRange(X).Value 
TicketVal = TicketRange(X).Value 
ReturnRel = RelRange(X).Value 

If (Task = Searchstring) And (ReldateVal = Reldate) Then 
Result = Result & " Rel " & ReturnRel & " (" & TicketVal & ")" & " &" 
End If 

Continue: 
Next X 

If Len(Result) > 0 Then RelLookup = Left(Result, Len(Result) - 2) 


End Function 
+1

的更容易或更可靠的方法......我不會明白你的意思是**「,但是當我添加一個新的單元格時,舊的單元格將被更新,其中包括搜索字符串行(因爲它不再是activecell.row)」** - 何時添加新的單元格?您的問題會如何發生?......您能否詳細解釋您所面臨的具體問題? – 2013-03-27 13:43:56

+0

對不起,desc不是100%清晰,我的意思是「..當我添加新行」電子表格每次有新版本時更新。該公式的原因是要查找包含與公式中使用的搜索字符串相同的搜索字符串的發佈,並且由於有超過900行,500個發佈和80個不同的任務,因此可能會耗費大量時間。但是,例如公式會輸出: Rel 400依賴於Rel 3 ##,Rel 400,Rel 5 ##等。我希望它忽略400(因爲當然,Rel 400顯然依賴於Rel 400)。 希望這給了一點細節。 – DTM 2013-03-27 15:47:35

+0

所以,如果我正確理解你的問題(而且我很可能不會),你的意思是我的'ActiveCell'在技術上是包含'SearchString'的單元?否則,我在這裏仍然有點困惑... – 2013-03-27 16:10:45

回答

0

我已經找到了解決辦法是罰款,這種情況下(感謝h @John Bustos的elp)。我添加了一個名爲「RowNumber」的Integer。然後我已經改變了VBA讀取If x = RowNumber GoTo Continue 雖然我現在有冗長式

=RelLookup(E955,Row(E955),"Not Rel",E:E,B:B,I:I,A:A,"") 

的整數ROWNUMBER由行(E955)的值來確定。

我會離開的情況下,開放式的問題有這樣做不引入另一個字符串(雖然我不認爲它周圍的一個更基本的方式)

相關問題