检查单元格是否填充
我有一个可以在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以便按目录过滤?
首先,几个一般的秘诀:
- 编写macros时,可以使用Ranges而不select它们。
-
使用下面的代码在macros的开始,以防止应用程序animation(这减慢了速度):
Application.ScreenUpdating = False
编辑:确保完成后将其设置回“True”。
- 而不是
Range("C9:C65000")
,你可以让Excel使用Range("A1").SpecialCells(xlCellTypeLastCell).Row
find最后一行。
所以,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