Следующий код предназначен для раскрывающегося списка в E7, который зависит от значения в указанной ячейке c (Pos_Cat). Идея состоит в том, чтобы l oop через столбец E другого листа найти значения, соответствующие Pos_Cat, и добавить значение столбца H в этой строке в строку, которая является моей формулой для раскрывающегося списка.
Код работал нормально, когда я добавлял все значения в диапазон, но когда был добавлен условный оператор, он начал выдавать ошибку для «AStr = Right (AStr, Len (AStr) - 1)».
Спасибо за помощь!
If Not Intersect(Target, Range("E7")) Is Nothing Then
Dim PTMsht As Worksheet
Set PTMsht = Sheets("PTM")
Dim TRNsht As Worksheet
Set TRNsht = Sheets("TL")
Dim Pos_Cat As String
Pos_Cat = TRNsht.Range("E6").Value
Dim Lrow As Single
Lrow = PTMsht.Range("E" & Rows.Count).End(xlUp).Row
Dim AStr As String
Dim i As Long
For Each cell In PTMsht.Range("H15:H100")
If cell.Offset(0, -3).Value = Pos_Cat Then
AStr = AStr & "," & cell
End If
Next
AStr = Right(AStr, Len(AStr) - 1)
With TRNsht.Range("E7").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=AStr
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If