У меня есть простой макет листа, как это. Range(A2:A7)
- это рабочие навыки, которые мне нужно найти в Range(F1:K8)
, E1:E8
- это рабочие места в каждом ряду между столбцами F: K, в которых мне нужно найти 2 или более навыков, перечисленных в A2:A7
. Если в каждой строке задания имеется 2 или более соответствующих навыка, поместите их, начиная с колонки C и +1, для каждого нового соответствующего задания.
У меня есть черновой сценарий, с которым мне нужна помощь.
Sub Competency_Finder()
Dim varArray As Variant 'varArray = F1:K8
Dim varArrayRow As Long, varArrayCol As Long 'rows and columns of varArray
Dim Skills_Needed As Variant, Dest As Range 'Col A list, first cell for first matching job
Dim i As Long 'Col A counter
Dim NumSkillsMatched As Integer, NextJobToAdd As Integer ' how many times skills matched in jobs row, next job to add to column C
Dim varJobsArray As Variant, varSkillTested As Variant
With ThisWorkbook.Sheets("Sheet1")
varArray = .Range("K1", .Range("F" & Rows.Count).End(xlUp))
End With
NumSkillsMatched = 0
NextJobToAdd = 0
For varArrayCol = 1 To UBound(varArray, 2)
For varArrayRow = 1 To UBound(varArray)
For varSkillTested = 1 To UBound(varArray)
If varArrayCol = Skills_Needed(i, 1) Then
NumSkillsMatched = NumSkillsMatched + 1
End If
Next
If NumSkillsMatched >= 2 Then
varJobsArray(NextJobToAdd).Value = NextJobToAdd
NextJobToAdd = NextJobToAdd + 1
End If
NumSkillsMatched = 0
Next
Next
End Sub
Я пытался закомментировать, что делает каждая переменная.
В этой строке появляется ошибка Type Mismatch
: If varArrayCol = Skills_Needed(i, 1) Then
Я не знаю почему, потому что мне нужно проверить F1, G2, H2 и т. Д. ... Как это исправить?
