excel - 检查 VBA 数组中是否已存在数字

标签 excel vba

我有一小段代码,用于检查计算出的数字“Birthday(i,0)”是否已存在于数组“Birthday”中,以及是否退出 For 计数器。是否有一种更简单的方法来测试“Birthday(i,0)”是否已经存在,而无需使用 For 计数器来检查数组“Birthday”的每个元素。

提前非常感谢。

代码如下:

 For i = 1 To MaxPeople

         Birthday(i, 0) = WorksheetFunction.RoundUp(Rnd() * 365, 0)

         For j = 1 To i - 1
             If Birthday(i, 0) = Birthday(j, 0) Then
                   NumberofPeople = i
                   Exit For
             End If

         Next j

         If NumberofPeople > 0 Then Exit For

  Next i

最佳答案

Dim rv

'find the position of a value in the first dimension of an array
rv = Application.Match(yourDate, Application.Index(Birthday, 0, 1), 0)
'if not found, rv will be an error value
If IsError(rv) Then
    Debug.Print "Not found"
Else
    Debug.Print "Found at pos " & rv
End If

关于excel - 检查 VBA 数组中是否已存在数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660697/

相关文章:

vba - 发送具有多个 RangeToHTML 范围的电子邮件

VBA - 自动过滤器 - 总是隐藏确切的值

java - 我应该如何转义 CSV 文件中的逗号和语音标记,以便它们在 Excel 中工作?

vba - 如何优化在大量记录上运行的宏?

vba - 如果是星期一,则添加 x y z

c - 避免蒙特卡罗模拟中的基本 rand() 偏差?

Excel VBA 将所有内容转换为文本

excel - VBA excel用剪贴板内容填充Listobject

VBA For 循环只改变一张纸

vba - 在将事件用户数据输入工作表之前,如何使用其他人的更改来更新共享工作簿?