如果数组包含值,我如何遍历数组并用 1 填充一些单元格,如果不包含值,则为 0,在 VBA 或 Excel 中?

How can I iterate over an array and populate some cells with 1 if the array contains the value, and 0 if not ,in VBA or Excel?

我从 Wix 收到一个数组,其中包含用户通过表单编辑的 select 课程。

从 Wix 接收的数组示例,其中用户 select 编辑了 2 门课程。这个数组放在一个单元格中。

["VBA","Django"]

上面的数组位于我的 excel 文件中的一个单元格内,我从那里红色单元格并用课程填充 VBA 数组:

Dim data() As Variant
    Dim arrStr As String
    Dim dataItems As Long
    Dim i As Long
    Dim IndividualCourses(1 To 9) As String

    arrStr = Range("T3")
    arrStr = Replace(Replace(arrStr, "[", "{"), "]", "}")
    data = Application.Evaluate(arrStr)
    dataItems = Application.CountA(data)
    For i = 1 To dataItems
        IndividualCourses(i) = data(i)
    Next i

但用户可以 select 1 到 10 门课程。所有课程的数组:

["JS","Python","VBA","Java","Spring","C++","C#", ".NET","Django","CSS"]

我想根据从 Wix 收到的数组,将 1 放入数组中存在的课程的单元格中,将 0 放入其他课程中。

例如,这个课程 selected ["VBA","Django"],它应该在 VBA 单元格中放入 1,在 Django 单元格中放入 1,并且0 在 remianing 课程单元格中,因为我想查看用户有哪些课程 selected.

对这个复杂的问题有什么想法吗?!?

不确定您在 VBA 上的设置如何,但根据您的 Excel 版本,您可以使用动态数组执行此操作,例如:

B2中的公式:

=--ISNUMBER(FIND(""""&B1:K1&"""",A2))

编辑:

根据@T.M。他的宝贵意见你也可以在 FIND() 整个垂直范围内输入第二个参数:

B2中的公式:

=--ISNUMBER(FIND(""&B1:K1&"",A2:A4))