Я пытаюсь создать макрос, который собирает как плоское число #, так и среднее из существующих значений на листе. Я получаю сообщение об ошибке в строке, где я пытаюсь вычислить переменную avgScore путем деления суммированного значения vulnScore на значение счетчика. Я получаю сообщение об ошибке «Runtime 6» в строке «avgScore = vulnScore / counter». Он работает с набором данных длиной 77 строк. Я пытался преобразовать переменные в Long (единственное реальное предложение, которое я нашел), но это не сработало. переменная 'element' предназначена для массива размером около 26, содержащего строковые переменные.
Dim counter As Long
Dim vulnScore As Long
Dim avgScore As Long
vulnScore = 0
counter = 0
avgScore = 0
Dim rowNum As Integer
''''''''''''''''''''
For Each element In arr
vulnScore = 0
counter = 0
avgScore = 0
'get #'s for putting into Treg
'''''''''
For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row
If Cells(i, 3).Value = element Then
'# of times that server is listed
counter = counter + 1
'combining vulnerability scores for that server
vulnScore = vulnScore + Cells(i, 7).Value
End If
Next i
avgScore = vulnScore / counter
'''''''''
'find Treg column/row
colNum = WorksheetFunction.Match("Findings Variance (4/15 vs Current)", ActiveWorkbook.TREG.Range("1:1"), 0)
rowNum = WorksheetFunction.Match(element, ActiveWorkbook.TREG.Range("1:1"), 0)
Cells(rowNum, colNum - 1).Value = avgScore
Cells(rowNum, colNum - 2).Value = counter
'''''''''
Next element
Пример: он извлекает данные из этого листа, которые будут активными при запуске макроса
Пример: вставка данных в два пустых столбца на этом листе (TREG)