我有一个可以在Excel中打开的HTML报告。我编写了宏来格式化此报告,因此它可以排序并且可以应用过滤器。
我想在斜杠之间抓取文字。报告大小,行数,未知。
A栏是空白的。 B列将包含完整路径名。如果填充了列B列,则列C应该包含斜杠之间的文本。
例如,B列包含R:\ testdocuments \ test.html。我希望列C包含测试文档。
我对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
这是无效的,因为它需要永远排序/过滤任何东西。
如何检查列B是否已填充,如果是,是否使用斜杠之间的文本填充C以便按目录过滤?
答案 0 :(得分:3)
首先,一些一般提示:
在宏的开头使用以下代码,以防止应用程序动画化(减慢速度):Application.ScreenUpdating = False
编辑:确保完成后将其重新设置为“True”。
Range("C9:C65000")
实际让Excel找到最后一行而不是Range("A1").SpecialCells(xlCellTypeLastCell).Row
。所以,宏可能看起来像这样:
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