在整个Excell列中搜索并不总是存在的值,如果不存在,则创建新值

时间:2017-12-05 16:58:03

标签: excel vba

我一直试图找到一些帮助,阅读我正在为更大的项目编写的代码。我希望在excel列中标识一个字符串。该字符串可能并不总是出现在列中,在这种情况下我需要能够创建一个新字符串。

我已经创建了一个小宏来测试它,目前我在A列中的数字是1:20。代码正在搜索“37”,并且应该无法找到它。 如果找到该值,则显示一个msg框以确认其已被找到,或者如果找不到它,则会显示一个msg框,表示未找到该信息框。如果我在搜索“2”,则代码完美无缺。当值不存在且“LastPLocation”没有值时,我会遇到问题 最终我需要创建一个变量并为其赋值,例如。一个字符串,表示“不存在”或数字“0”

变量名称取自主项目,因此您可以更改它们。

Sub test()

Dim LastPLocation As String

Dim NewLastPLocation as String 

LastPLocation = Range("A:A").Find(what:="37", after:=Range("A1"), searchdirection:=xlPrevious).Row

If LastPLocation Is Nothing Then

MsgBox ("No Last P")

NewLastPLocation = 0

Else

MsgBox (LastPLocation)

NewLastPLocation = LastPLocation + 1

MsgBox (NewLastPLocation)

End If

End Sub

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

不要将lastPLocation设置为String,而是使用Range

Sub test()
Dim LastPLocation As Range
Dim NewLastPLocation As String

Set LastPLocation = Range("A:A").Find(what:="37", after:=Range("A1"), searchdirection:=xlPrevious)

If LastPLocation Is Nothing Then
    MsgBox ("No Last P")
    ' Do things here when the value is NOT found
    NewLastPLocation = 0
Else
    ' Do things here when the value IS found
    MsgBox (LastPLocation.Row)
    NewLastPLocation = LastPLocation.Row + 1
End If

MsgBox (NewLastPLocation)

End Sub