2
Итак, вот мой второй вопрос к вам, эксперты. Я пытаюсь найти последнюю строку столбца, но я продолжаю получать «диапазон значений метода для объекта».Метод «Диапазон» объекта _workheet не удался при поиске последнего VBA Excel
Я попытался изменить синтаксис на разные вещи, но я до сих пор не могу его обработать.
Я новичок в VBA Excel, и я очень ценю вашу помощь с этим.
Спасибо. нарушитель линия помечается ********
Private Sub GetProductCode()
'Opens jobs file
'Trims down customer reference column to job number only, then searches job file to return product code
Dim sJobNumber As String
Dim sCustomerReference As String
Dim wsRevRownum As Long
Dim wbkJobs As Workbook
Dim wsJobs As Worksheet
Dim wsRev As Worksheet
Dim strPathFile As String
Dim strSearch As String
Dim fCell As Range
Dim fCellRowNum As String
Dim wsJobsLastrow As Long
Dim wsRevLastrow As Long
'On Error GoTo ErrHandler
Application.ScreenUpdating = False
'Change as desired
strPathFile = "\\ACHILLES\Company\Production_schedule\Jobs.xlsm"
strSearch = "Specific text"
Set wbkJobs = Workbooks.Open _
(Filename:=strPathFile, _
UpdateLinks:=0, _
ReadOnly:=True, _
AddToMRU:=False)
Set wsRev = ThisWorkbook.Sheets(3)
MsgBox wsRev.Name
Set wsJobs = wbkJobs.Sheets("Jobs")
'MsgBox wbkJobs.Name
wsRevRownum = 2
With wsRev
wsRevLastrow = wsRev.Range("E" & Rows.Count).End(xlUp).Row ********
End With
With wsJobs
wsJobsLastrow = wsJobs.Range("A" & Rows.Count).End(xlUp).Row
End With
'Loop through revenue file and search for entries in jobs file. If found then take the product code from the jobs file and populate revenue file
Do Until wsRev.Range("E" & wsRevRownum).Address = (wsRevLastrow + 1)
'initialise variables
sCustomerReference = ""
sJobNumber = ""
strSearch = ""
попытка 'wsRevLastrow = .Range ("Е" и .Rows.Count) .END (xlUp) .Row' – findwindow
или' .Cells (.Rows.Count, "Е"). Конец (xlUp) .Row'. В значительной степени такая же точная вещь;) –
Я также продолжу и заметьте, что ваш цикл «Do Until» не будет делать то, что вы ожидаете. Свойство '.Address' возвращает тип' string' с адресом диапазона. Вы тестируете равенство с типом данных 'Long' в' (wsRevLastRow + 1) '. – user3561813