如果数组包含值,我如何遍历数组并用 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))
我从 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))