查找方法对小宽度列有问题吗?

1 excel column-width

我正在使用一个函数,该函数为我提供了在其中找到一个值的列。我在完成它时遇到了困难......但我成功了!

不管你信不信,错误是 Find 方法在查找宽度太小的单元格中的值时出现问题......这会这么愚蠢吗?

这是打电话..

Private Sub CommandButton3_Click()

 Direccion = BuscarCol(2)
 MsgBox "the cell address is " & Direccion

End Sub
Run Code Online (Sandbox Code Playgroud)

这就是功能...

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
Run Code Online (Sandbox Code Playgroud)

哦,我还有一个用于将列号转换为字母的方法,但这从来都不是问题。

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
Run Code Online (Sandbox Code Playgroud)

那么……你能告诉我这是否正确吗?Find方法有这个问题吗?

Dic*_*ika 5

如果您在“查找”框中选择“查找范围:值”,则它将仅查找可见的值。如果该列被隐藏,它将找不到它。如果该列太窄而无法显示该值,而是显示 ###,则不会找到该值。即使您将单元格格式设置为;;;有效隐藏该值,它也不会找到它。

如果您选择查找:公式,它将在所有这些情况下找到它。

但是,如果您有一个生成值的公式,并且该值不存在于公式文本中,则它不会找到它。所以=200+22在一个单元格中,你搜索222

  • 在值中:仅在可见时才会找到它
  • 在公式中:找不到它

这似乎是一个奇怪的设计决定。我的理论是算法使用该Range.Text属性。该属性返回单元格中可见的内容,例如窄列的 ###,而不是.Value.Value2