Я работал в функции, которая дает мне столбец, в котором он находит одно значение. У меня возникли проблемы с его выполнением ... Но я сделал это!У метода поиска есть проблемы с небольшими столбцами ширины?
ОШИБКА, верьте или нет, заключалось в том, что метод Find имеет проблемы с поиском значений в ячейках, ширина которых слишком мала ... Может быть, это так глупо?
Это вызов ..
Private Sub CommandButton3_Click()
Direccion = BuscarCol(2)
MsgBox "the cell address is " & Direccion
End Sub
И это функция ...
Function BuscarCol(Fecha As Integer) As String
Dim RangoFech As Range
With Sheets("REGISTRO").Range("A1:IN1")
Set RangoFech = .Find(What:=Fecha, LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext, MatchCase:=False)
If Not RangoFech Is Nothing Then
BuscarCol = ConvertToLetter(RangoFech.Column)
End If
End With
End Function
О, и у меня есть еще один для преобразования чисел столбца с буквами, но это никогда не было проблема ..
Function ConvertToLetter(iCol As Integer) As String
Dim iAlpha As Integer
Dim iRemainder As Integer
iAlpha = Int(iCol/27)
iRemainder = iCol - (iAlpha * 26)
If iAlpha > 0 Then
ConvertToLetter = Chr(iAlpha + 64)
End If
If iRemainder > 0 Then
ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
End If
End Function
Итак ... вы можете мне сказать, правильно ли это? У метода поиска есть эта проблема?
Обратите внимание, что функция 'ConvertToLetter' не работает для некоторых значений, например, попробуйте 53, 79, 80 ([см. Этот ответ] (http://stackoverflow.com/a/12797190/445425) для надежного решения) –