У меня есть таблица с 66 столбцами (представляющими ветряные турбины) и около 5000 строк временных меток. Я должен проверить, соответствует ли значение каждой ячейки, в данном случае скорости, определенным критериям, если это так, я извлекаю название Ветровой турбины из самого верхнего ряда. Используя имя, мне нужно «найти» ближайшую к нему ветряную турбину из матрицы на другом листе и вернуть ее.
Option Explicit
Public Sub ErsetzenNachbar()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim Arr As Variant
Dim Rng As Range
Dim SheetName As String
Dim i As Long
Dim j As Long
Dim WeaMat As Workbook
Dim Mat As Range
Dim Arr2 As Variant
Dim target As Long
Dim MOfound As String
SheetName = "INPUT_WIND"
'Range in the first Workbook
Set Rng = wb.Worksheets(SheetName).Range("C2:AG5000")
'Open the second Workbook
Set WeaMat = Workbooks.Open("C:\Users\Nikhil.srivatsa\Desktop\WeaMat")
'Set range for second workbook with the Matrix
Set Mat = WeaMat.Worksheets(1).Range("A2:AP68")
'Range into array
Arr = Rng.Value
'loop through array
For i = LBound(Arr, 1) To UBound(Arr, 1)
For j = LBound(Arr, 2) To UBound(Arr, 2)
If Arr(i, j) = 0.047 Then
'wind turbine Name from the topmost row
Arr(LBound(Arr, 1), j) = target
'look for target in the Matrix and fetch the neighboring turbine here is where i need help!
End If
Next j
Next i
End Sub
Например, я ищу ячейки, содержащие 0,047 (могут отличаться) и получить "MO30" название турбины. Теперь я смотрю MO30 в Матрице второй рабочей книги и прошу его выбрать MO42 из Матрицы, поскольку это первая ближайшая ветряная турбина.
поможет ли в этом случае Collections
или Dictionary
? или я должен создать массив из матрицы? или используйте функцию Find
?