检查单元格是否填充

我有一个可以在Excel中打开的HTML报告。 我写了macros来格式化这个报告,所以它是可sorting的,并且可以应用filter。

我正尝试在斜线之间抓取文本。 报告大小,有多less行,是未知的。

列A是空白的。 B列将包含完整的path名称。 如果填充B列,则C列应该在斜线之间具有文本。

例如,列B包含R:\ testdocuments \ test.html。 我想列C包含testing文档。

我有C列的代码:

Range("C9").Select ActiveCell.FormulaR1C1 = _ "=MID(RC[-1], FIND(""\"",RC[-1])+1, FIND(""\"",RC[-1], FIND(""\"",RC[-1])+1)-FIND(""\"",RC[-1])-1)" Range("C9").Select Selection.AutoFill Destination:=Range("C9:C65000"), Type:=xlFillDefault Range("C9:C20000").Select 

这是无效的,因为它需要永远sorting/过滤任何东西。

我如何检查列B是否填充,如果是,用斜线之间的文本填充C以便按目录过滤?

首先,几个一般的秘诀:

  1. 编写macros时,可以使用Ranges而不select它们。
  2. 使用下面的代码在macros的开始,以防止应用程序animation(这减慢了速度): Application.ScreenUpdating = False

    编辑:确保完成后将其设置回“True”。

  3. 而不是Range("C9:C65000") ,你可以让Excel使用Range("A1").SpecialCells(xlCellTypeLastCell).Rowfind最后一行。

所以,macros可能看起来像这样:

 Sub FillFormulas() Dim row As Integer Application.ScreenUpdating = False row = Range("B9").SpecialCells(xlCellTypeLastCell).row Range("C9").Formula = "=MID(B9, FIND(""\"",B9)+1, FIND(""\"",B9, FIND(""\"",B9)+1)-FIND(""\"",B9)-1)" Range(Range("C9"), Range("C" & row)).FillDown End Sub