我是该论坛的新成员,但已经做了一些有关此特定问题的搜索。我还没找到任何东西。
我需要一个VBA
脚本来搜索位于I7
第一个工作簿中单元格中的值wb1
,并将该条目引用到A:A
另一个工作簿中名为“代码”的工作表中的列wb2
,如果它I7
在“列中的单元格”中找到了该值,A:A
它将将文本“找到的值”放入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
正如罗恩(Ron)所评论的那样,您的声明和实例化需要进行一些修改。Set
您的代码中的wb1和wb2在哪里?
这个简化的版本可以正常工作:
Sub simplified()
Dim rn1 As Range
Dim WBS As Range
Set rn1 = Range("A:A")
Set WBS = rn1.Find( _
What:=Range("I7").Value, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If WBS Is Nothing Then
Range("I7").Copy
Range("J7").PasteSpecial Paste:= Excel.xlValues
Else
Range("J7").Value = "'Value Found"
End If
End Sub
结果简化为单个工作簿中的一张纸:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句