Я надеялся, что вы сможете помочь с ошибкой, которую я продолжаю получать - я пытаюсь исправить ошибку с данными, которая иногда возникает в моем отчете, удаляя указанную строку, а затем прибегая к данным и проверяя правильность всех формул.
Я запустил рекордер макросов и использовал его для создания приведенного ниже кода - все работало нормально, когда я запускал код с рекордера, но теперь я попытался персонализировать его в своей книге (т. Е. Добавить имена книг), которую я сохраняю получить
ошибка выполнения 91 в этой строке
cell = data.Range("A1:A400").Find(What:="Date", lookat:=xlWhole)
Любая помощь по поводу того, что я сделал, чтобы вызвать ошибку, чтобы я мог избежать ее в будущем, была бы очень полезна!
Sub RemoveLine()
Dim del, dr As Workbook
Set dr = ThisWorkbook
Set del = Workbooks("Delivery Data.xls")
Dim rep, inf, data As Worksheet
Set rep = dr.Sheets("Report")
Set inf = dr.Sheets("Info")
Set data = dr.Sheets("Data")
Dim r1, r2, r3, r4, row01 As Long
Dim nu, na As String
nu = inf.Range("C7").Text
na = inf.Range("C4").Text
cell = data.Range("A1:A400").Find(What:="Date", lookat:=xlWhole)
MsgBox cell
If Not cell Is Nothing Then
row01 = cell.Row
data.Range("A" & row01 & ":S" & row01).Delete Shift:=xlUp
data.Sort.SortFields.Clear
data.Sort.SortFields.Add Key:=Range("A2:A21"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With data.Sort
.SetRange Range("A2:S21")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'FORMULAS
Dim st1, st2, st3, st4, st5, st6 As String
st1 = "=IF(Data!A2="""", """", Data!A2)"
st2 = "=IF(Data!C2="""", """", Data!C2)"
st3 = "=IF(Data!G2="""", """", Data!G2)"
st4 = "=IF(F3="""", """", G3/$C$10)"
st5 = "=IF(E27="""", """", Data!G2)"
st6 = "=IF(C27="""", """", G27/Info!$C$10)"
With inf
.Range("E3:E100").Formula = st1
.Range("F3:F100").Formula = st2
.Range("G3:G100").Formula = st3
.Range("H3:H100").Formula = st4
End With
With rep
.Range("B27:C62").Formula = st1
.Range("E27:E62").Formula = st2
.Range("G27:G62").Formula = st5
.Range("J27:J62").Formula = st6
End With
End If
End Sub