我是这个论坛的新成员,但已经做了一些搜索这个特殊问题 . 我还没找到任何东西 .
我需要一个 VBA
脚本,它在第一个工作簿 wb1
中搜索位于单元格 I7
中的值,并在另一个工作簿 wb2
中的一个名为"Codes"的工作表中引用该条目 A:A
,如果它在Cell I7
中找到该值在 A:A
列中,它将文本"Value Found"放入Cell I7
. 如果它没有在列范围内找到该值,它将原始工作表中的旧值复制并粘贴到新工作表中 .
Excel似乎正在执行代码,但我得到的问题是,如果值不在引用的列中,代码似乎没有提取它,因此代码只是放置“值发现“无论是否在引用的列中找到值,都进入目标单元格,我在这里遗漏了什么?
Dim wb1 as Workbook, wb2 as Workbook,
Dim Sh1 as Worksheet
Dim WBS as Range
Set Sh1 = wb1.Sheets("Codes").Range("A:A")
Set WBS = Sh1.Columns(1).Find(What:=wb2.Sheets("Summary").Range("I7:I7").Value, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If WBS Is Nothing Then
wb1.Sheets("Summary").Range("I7:I7").Copy
wb2.Sheets("Summary").Range("I7:I7").PasteSpecial Paste:=xlPasteAll
Else
wb2.Sheets("Summary").Range("I7:I7").Value = "'Value Found"
End If
1 回答
正如罗恩评论你的声明和实例需要一些修改 . 你的代码在哪里
Set
wb1和wb2?这个简化版本工作正常:
结果简化为单个工作簿中的一个工作表: