Я написал следующий код, который я надеялся использовать для поиска значений из столбцов 21 до последней строки на другом листе и возврата их на этот лист на основе значения в колонке А в этом листе и колонке В на другом листе.Индекс/совпадение при циклировании по строкам и столбцам
Когда я использую приведенный ниже код, я получаю ошибку рабочего листа. Не могли бы вы рассказать мне, почему?
Dim wsMvOld As Worksheet
Dim wsMvFile As Worksheet
Dim wsColumn As Long
Dim lastColumn As Long
Dim y As Integer
Dim i As Integer
Dim FrRngCount As Range
Set wsMvOld = wbMVRVFile.Worksheets(2)
wbMVRVFile.Worksheets.Add().Name = "MV " & Format(DateSerial(Year(Date), Month(Date), 0), "dd-mm-yy")
Set wsMvFile = wbMVRVFile.ActiveSheet
Set FrRngCount = wsMvFile.Range("A:A")
y = Application.WorksheetFunction.CountA(FrRngCount)
lastColumn = wsMvFile.Cells(1, wsMvFile.Columns.Count).End(xlToLeft).Column
For wsColumn = 21 To lastColumn
For i = 2 To y
wsMvFile.Columns(wsColumn).Cells(i) = Application.Index(wsMvOld.Range(wsColumn), Application.Match(wsMvFile.Range("A" & i), wsMvOld.Range("B:B"), 0))
Next i
Next wsColumn
End Sub
Благодарим за помощь!
Забыл «WorksheetFunction» перед «индексом»? Но на самом деле почему все используют функции рабочего листа в VBA XD – findwindow
Позвольте мне попробовать. Причина, по которой я использую функции рабочего листа, заключается в том, что я не знаю лучшего решения. Какие-либо предложения? –
Посмотрите 'find'? – findwindow