【问题标题】:Excel Find cell displaying ######Excel 查找单元格显示######
【发布时间】:2013-01-27 19:01:34
【问题描述】:

我想找到值超出其列宽的任何单元格。

查看单元格的属性,我可以看到单元格文本值为####,但 Excel Find 方法似乎不允许我搜索单元格值和单元格公式以外的任何内容。

【问题讨论】:

  • 您的销售中实际包含哪些数据?很可能列的宽度不够 - 对于这些情况,单元格显示为 #########
  • 试试这个:stackoverflow.com/questions/10930743/… Searchbar 是你的朋友
  • 我正在编写一个宏来查找溢出的单元格,然后宏将自动调整单元格。
  • 我查看了您链接到的线程,它对我不起作用,因为我的工作表非常大,除非必要,否则我希望避免调用 autofit,因为它会使应用程序减慢太多。
  • 可能类似于:遍历列;在每一列获取列宽;向下迭代行:查找每个单元格的文本长度;当到达列底部时,将列宽设置为 2)如果最大长度 > 某个您知道会溢出的数字,执行自动调整或将宽度设置为溢出宽度 +,例如 1 或 2)将最大文本长度设置为文本的最大宽度 + 1或 2 或 3) 转到下一列

标签: excel vba


【解决方案1】:

我终于明白了-

Set hashrange = .Cells.Find(What:="##", After:=.Cells(.Cells.Count), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
If Not hashrange Is Nothing Then  
    hashrange.Columns.AutoFit
End If

这不是建议的重复帖子,我所追求的解决方案是在不迭代 vba 中的行或列的情况下找到溢出单元格的最快方法 - 这在大表中太慢(对我来说)。

希望有人觉得这很有用 - 现在在我的应用程序中使用它Excel Database Tasks

非常感谢您的所有回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2015-12-28
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多