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

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

从 Wix 接收的数组示例,其中用户选择了 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

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

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

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

例如,这个课程选择了["VBA","Django"],它应该在VBA单元格中放置1,在Django单元格中放置1,在剩余课程单元格中放置0,因为我想看看用户选择了哪些课程.

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

回答

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

公式B2

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

编辑:

根据@TM 他的宝贵评论,您也可以在FIND()整个垂直范围内提供第二个参数:

公式B2

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

  • @JvdV Nice; it's even possible to include a whole range of search items in column A via e.g. `=--ISNUMBER(FIND(""""&B1:K1&"""",A2:A100))` - *Hint: Take care to fill the whole caption row `B1:K1` with entries in order to prevent unwanted findings of a blank caption.*

以上是在VBA或Excel中,如果数组包含该值,我如何遍历数组并用1填充某些单元格,如果不包含该值则用0填充?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>