我目前正在自动化执行以下步骤的手动流程:
1.提示用户打开一个数据文件并打开文件
2.插入4列
3.使用文件中已有的数据创建格式为“DD/MM/YYYY TEXT”的唯一字符串,其中文本是变量
4.使用 if 语句确定主数据文件中是否存在行
5.如果d列中的值=“Exists”,则在主数据文件中查找该字符串,并使用vlookup函数将数据从数据文件传输到主数据文件
6.Else(如果该值=其他任何值)则插入一个新行并将其命名,然后使用vlookup函数将数据从数据文件传输到主文件
我的问题在于 Unq.String 有时/很少不是完全匹配,因此通过使用 FIND 函数,它将返回消息:“我们找不到您要查找的内容。单击选项以获取更多方法搜索”
我对你们的问题是,有没有一种方法可以在收到此错误消息后将数据粘贴到另一个名为“mop up”的选项卡上,然后再移动到下一行?我在第 5 步和第 6 步的代码中使用了循环,因为我需要跳下每一行,但我不知道在不破坏循环的情况下从哪里开始。
感谢您提前提供的帮助,如果您需要有关上下文的更多信息,请告诉我。
Aaron
Thanks
编辑评论解释了我计划如何使用它:
Dim ColumnD As String
Dim SearchValue As String
If ColumnD = "Exists" Then
'Find SearchValue in Master data sheet and vlookup
'ELSE Insert new row, add UNQ.String to New row then do the vlookup
'Loop untill using Rows.count + 1 and lastRow (Already declared)
这个问题已经在这里探讨过:如何检测 VBA Excel 是否发现某些内容 https://stackoverflow.com/questions/1589939/how-to-detect-whether-vba-excel-found-something.
基本上,您将范围变量设置为结果.find
范围。如果该范围是Nothing
那么什么也没有返回,您可以以最适合您的方式响应用户。
编辑:根据OP添加的查询
Sub findsomething()
Dim foundsomething As Range
Dim searchterm As String
searchterm = "Search Term"
Set foundsomething = Application.ActiveSheet.Find(What:="search term", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
If (Not foundsomething Is Nothing) And columnD = "Exists" Then
' Do something
End If
End Sub
Cheers,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)