我有一个VBA脚本,它会在一个页面上输入所有新的注册号码(带有注册信息),并将信息复制并粘贴到其他工作表中进行存储。
我只需要确保新的注册号码(欢迎表上的单元格A19)不在存储注册号码的列中(注册表中的列B或2)。如果值相同,则退出sub。
BONUS:如果我能在新输入的数字之后计算出意外空间会很好,所以如果1478(空格)存在,则不会添加1478(空格)。
以下是运行它时错误13类型不匹配的脚本:
Dim r As Integer
Dim regisRange As Range
Set regisRange = Worksheets("Registration").Columns(2)
Range("A19").Value = r
For Each cell In regisRange
If r = cell.Value Then
MsgBox "The Registration Number is already in use."
Exit Sub
End If
Next cell
答案 0 :(得分:0)
Private Sub morestuff()
Dim r As Integer
Dim regisRange As Range
Dim rcell As Range
Set regisRange = ThisWorkbook.Sheets("Sheet1").Columns(2)
r = Range("A19").Value
For Each rcell In regisRange.Cells
If Trim(rcell.Value) = r Then
MsgBox "The Registration Number is already in use."
Exit Sub
End If
Next rcell
End Sub
这应该有效:)
有很多错误。工作表引用不正确,没有命名对象,以及不正确的单元格引用。
我显然改变了一些东西,使其在我的工作簿中工作,替换值以满足您的需求
答案 1 :(得分:0)
如果我建议改为CountIf()
?
Dim r$
r = Range("A19").Value
numberOfDuplicates = WorksheetFunction.CountIf(Range("E:E"), "*" & r & "*")
If numberOfDuplicates > 0 Then
MsgBox "The registration number is already in use"
End If
这样可以避免遍历整个列,或者为每个x"做一次"这样可以节省时间。
可能需要调整一下,可能就像r = Trim(Range("A19").Value)
一样。另外,请确保添加Worksheet引用。否则,这应该适合你。