【发布时间】:2019-06-21 04:20:45
【问题描述】:
我需要在 C 列中找到包含“120”且不重复的单元格的第一行编号(我拥有的数据有超过 10 个每个数字代码,我只需要第一个)。所以代码应该选择包含例如的第一行号。 120、7120、81200。
我在下面尝试的代码仅设法找到包含 120 的单元格的第一行号。作为参考,AGCL 是从另一个查找函数派生的列字母,tbAC 是用户输入文本框。
Dim AGCN As Long
Dim AGCL As String
Dim AGNN As Long
Dim AGNL As String
Dim i As Long
Dim RowD As Long
Dim AAC As String
Dim rng As Range
Dim rownumber As Long
Dim AGC As Range
Dim AGN As Range
Dim firstaddress As Long
Dim nextaddress As Long
Set rng = Sheet1.Columns(AGCL & ":" & AGCL).Find(what:="*" & tbAC & "*",
LookIn:=xlValues, lookat:=xlPart)
rownumber = rng.Row
Debug.Print rownumber '9
With Sheet1.Range(AGCL & ":" & AGCL)
Set c = .Find("*" & tbAC & "*", LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Value
Debug.Print firstaddress
With Me.ListBox2
.ColumnCount = 3
.ColumnWidths = "50;150;70"
.AddItem
.List(i, 0) = Str(firstaddress)
i = o + 1
End With
Do
Set c = .FindNext(c)
If c Is Nothing Then
GoTo donefinding
ElseIf firstaddress <> c.Value Then
nextaddress = c.Value
Debug.Print nextaddress 'it doesn't print any value here
'With Me.ListBox2
' .ColumnCount = 3
' .ColumnWidths = "50;150;70"
' .AddItem
' .List(i, 0) = Str(nextaddress)
' Debug.Print nextaddress
' i = o + 1
'End With
End If
Loop While c.Address <> firstaddress
End If
donefinding: Exit Sub
End With
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
这是您使用的完整代码吗?
-
您可以在一个数组中赋值,并循环遍历数组以匹配找到的下一个值。这样,您将获得包含 120 的所有不同单元格的第一行。
-
我需要一个关于如何继续的补充,这部分工作,但我找不到 7120 和 81200 的其他行号,它们位于此工作表的第 58 和 256 行
-
@Mikku 你是怎么做的?对数组函数不是很熟悉
-
不需要数组,我想了更多,我下面的答案将在没有任何数组的情况下完成。尝试遵循这一点。