yshindin пишет:Fck_This пишет:. . .
Искомое значение находится в столбце AD, а определяется она как Z. GetColumnAddress показывает 26, а должен вернуть - 30. (в Z столбце "Лист #Д", в AD столбце - "Плёнка") Такие значения как "Тираж" и "Шифр" находит правильно.
. . .
Я прогнал вот этот код для проверки вашей функции GetColumnAddress и у меня все выдается правильно:
Sub ttf()
Dim ss As String
ss = GetColumnAddress("плёнка", ActiveSheet) '="AD"
ss = GetColumnAddress("Лист #Д", ActiveSheet) '="Z"
End Sub
В чем может быть ваша проблема, мне не понятно. Попробуйте подобрать другие варианты реализации этой функции.
Получилось получить только перебором ячеек с выделением
Function GetColumnAddress(ByVal sTarget As String, ByRef oWorkSht As Worksheet)
Dim rCell As Range
Dim sAddr As String
Set rCell = oWorkSht.Rows(1).Find(What:=sTarget, Lookat:=xlWhole)
sAddr = Split(oWorkSht.Cells(rCell.Row, rCell.Column).Address, "$")(1)
GetColumnAddress = sAddr
If sTarget = "Плёнка" Then
Range(sAddr & "1").Select
If Not Selection.Value = "Плёнка" Then
Dim iLastCol, iCell As Integer
iLastCol = Cells.SpecialCells(xlLastCell).Column
iCell = rCell.Column + 1
For i = iCell To iLastCol
sAddr = Split(oWorkSht.Cells(rCell.Row, i).Address, "$")(1)
Range(sAddr & "1").Select
If Selection.Value = "Плёнка" Then
GetColumnAddress = Split(oWorkSht.Cells(rCell.Row, i).Address, "$")(1): Exit Function
End If
Next i
End If
End If
End Function
Подозревал группировку столбцов, но нет. Короче приходится пилить из ..вна и палок. Поэтому вопрос открыт.
Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871