【问题标题】:To skip a row containing the searchstring in excel VBA在 excel VBA 中跳过包含搜索字符串的行
【发布时间】:2013-03-27 09:56:43
【问题描述】:

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

【问题讨论】:

  • ...我不明白您所说的 是什么意思,但是当我添加一个新单元格时,旧单元格会更新,其中包括搜索字符串行(因为它不再是活动单元格。 row)" - 何时添加新单元格?您的问题是如何出现的??...您能否更详细地解释一下您面临的具体问题?
  • 抱歉,描述不是 100% 清晰,我的意思是“..当我添加新行时” 每次有新版本时,电子表格都会更新。该公式的原因是查找包含与公式中使用的搜索字符串相同的搜索字符串的版本,并且由于有超过 900 行、500 个版本和 80 个不同的任务,这可能会很耗时。但例如公式将输出:Rel 400 依赖于 Rel 3##、Rel 400、Rel 5## 等。我希望它忽略 400(因为,当然,Rel 400 显然依赖于 Rel 400 )。希望这能提供更多细节。
  • 所以,如果我正确理解了您的问题(我很可能不会),您的意思是我的ActiveCell 从技术上讲是包含SearchString 的单元格?不然我这里还是有点糊涂……
  • 活动单元格是其中包含公式的单元格,但是由于它与搜索字符串位于同一行,因此 activecell.row 意味着它将忽略该行,但我需要它始终忽略该行不只是在它处于活动状态时。 (我认为 activecell.row 会起作用,但它不起作用)
  • @JohnBus​​tos 如果有办法找到搜索字符串所在的行,这将解决问题。例如如果我的搜索字符串在 E952 中,row = 952 等等......如果它是一个自己的字符串会更容易吗?

标签: vba excel row skip


【解决方案1】:

我找到了适合这种情况的解决方法(感谢@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) 的值决定。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多