1

我有一个电子表格的循环,其中已经有一些代码。基本上在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
4

1 回答 1

0

我找到了适合这种情况的解决方法(感谢@John Bustos 的帮助)。我添加了一个名为“RowNumber”的整数。然后我将 VBA 更改为阅读If x = RowNumber GoTo Continue 虽然我现在有一个冗长的公式

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

Integer RowNumber 由 Row(E955) 的值确定。

如果有一种更简单或更可靠的方法可以在不引入另一个字符串的情况下执行此操作,我将保留这个问题(尽管我想不出更基本的方法)

于 2013-03-28T13:08:43.557 回答