У меня возникла проблема с созданием макроса, который будет автозаполнять функцию VBA с именем «FindMyOrderNumber». Каждый раз, когда я запускаю макрос для автозаполнения «FindMyOrderNumber», заполняется только первая ячейка в столбце.Проблема Создание макроса автозаполнения с помощью функции VBA
Эта функция будет искать номер заказа в столбце A (A1) и возвращать имя рабочего листа, которое может быть найдено B (B1).
Option Explicit
Function FindMyOrderNumber(strOrder As String) As String
Dim ws As Worksheet
Dim rng As Range
For Each ws In Worksheets
If ws.CodeName <> "Sheet3" Then
Set rng = Nothing
On Error Resume Next
Set rng = ws.Cells.Find(What:=strOrder, LookAt:=xlWhole)
On Error GoTo 0
If Not rng Is Nothing Then
FindMyOrderNumber = ws.Name
Exit For
End If
End If
Next
Set rng = Nothing
Set ws = Nothing
End Function
Я создал этот макрос ввести свой VBA функцию "= findmyordernumber (a1)" в ячейке B1 затем автозаполнение столбца B.
Sub AutofillVBAFunction()
Range("B1").Select
ActiveCell.FormulaR1C1 = "=FindMyOrderNumber(RC[-1])"
Selection.Autofill Destination:=Range("B1:B68")
Range("B1:B68").Select
End Sub
После того как я запустить этот макрос только B1 заполняются.
Извините, если это было обсуждено, я новичок, и я попробовал How to fill-up cells within a Excel worksheet from a VBA function? и другие вопросы, и я не смог применить его к моей проблеме.
Пожалуйста, помогите
'Диапазон (" B1: B68 ") =" = FindMyOrderNumber (RC [-1]) "Попробуйте. – Davesexcel
@Davesexcel Звучит как ответ на меня, если вы также можете объяснить, почему их текущий код не работает, что бы сделать отличным. – Aiken