В настоящее время я пытаюсь создать программу, которая находит заголовок «Ошибка надежности» и проверяет, являются ли данные под этим заголовком> 0. Если значение больше 0, оно сместится (0,3) вправо и поместит полученное мной значение с помощью левой функции. Поскольку я все еще не очень знаком с синтаксисом VBA, я столкнулся с ошибкой несоответствия типа, как показано ниже. Кто-нибудь знает, как ее решить?
Dim arr As Variant
With Application
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets(1)
Dim z As Long
Dim lastrow2 As Long
Dim result As Long
lastrow2 = ws1.Columns("U2:U").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row '--->**mistmatch error here**
arr = .Transpose(ws1.Range("T1:W1").Value)
For p = 2 To lastrow2
If .Count(.Match(Array("Reliability Fail"), arr, 0)) = 1 And ws1.Cells(p, "U") > 1 Then
result = ws1.Cells(p, "U").Address(False, False) '---->**mismatch error here**
ws1.Cells(Range("result").Row, Range("result").Column).Offset(0, 3) = Left(output, Len(output) - 1)
End If
Next
End With
Обновлены изменения:
Dim arr As Variant
With Application
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets(1)
Dim z As Long
Dim lastrow2 As Long
Dim resultRng As Range
Set resultRng = ws1.Cells(p, "U")
lastrow2 = ws1.Columns("U2:U & ws1.Rows.Count").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
arr = .Transpose(ws1.Range("T1:W1").Value)
For p = 2 To lastrow2
If ws1.Range("U1") = "Reliability Fail"And resultRng > 1 Then
ws1.Cells(p, "U").Offset(0,3).Value = Left(output, Len(output) - 1)
End If
Next
End With