Я пытаюсь найти способ поиска ячейки для чисел, которые, возможно, были введены. Значит, значение B2 равно 12. При использовании Instr он найдет 1,2 и 12. Есть ли способ вернуть только 12? Вот код, который я сейчас использую для него, который, если бы я использовал только 1-9, был бы неплохим, но мне нужно больше опций.Функция Instr, нахождение всего числа, поэтому 12 не вернется true для 1
Sub PRTLookup()
Dim WsP As Worksheet
Dim PRTval As String
Dim MonCt As Long, DayCT As Long
Set WsP = ThisWorkbook.Sheets("PT")
For MonCt = 2 To 46 Step 4
For DayCT = 2 To 32
CelVal = Cells(MonCt, DayCT)
If IsNumeric(CelVal) Then
For x = 1 To 26
If InStr(Cells(MonCt, DayCT).Text, x) Then PRTval = PRTval + WsP.Cells(x, 1).Value
Next
Cells(MonCt, DayCT).Value = PRTval
PRTval = Empty
End If
Next
Next
End Sub
Это Окончательный код, который работал для меня:
Dim myarr() as string
Dim num as Variant
For MonCt = 2 To 46 Step 4
For DayCT = 2 To 32
Celval = Cells(MonCt, DayCT)
myarr = Split(Celval, ",")
For Each num In myarr
PRTval = PRTval & " " & WsP.Cells(num, 1).Text
Next num
Cells(MonCt, DayCT).Value = PRTval
PRTval = Empty
Next
Next
Может ваши клетки имеют несколько номеров? Как это будет отформатировано? – trincot
Где «CelVal» получил свою ценность? – trincot
@Trincot, значение ячейки может иметь несколько номеров. цифры будут введены как 1,4,6,13 и т. д. в зависимости от того, что они хотят от листа WsP. CelVal не попал в код по какой-либо причине, но я его отредактировал, чтобы добавить его. – cparsons