Excel 检查单元格是否已填充
我有一个HTML报告,可以在Excel中打开。我已经编写了宏来格式化此报告,因此它是可排序的,并且可以应用过滤器 我试图抓住斜杠之间的文本。报告大小(行数)未知 A列为空。列B将包含完整的路径名。如果填充了B列,则C列的文本应位于斜杠之间 例如,B列包含R:\testdocuments\test.html。我希望C列包含testdocuments C列的代码:Excel 检查单元格是否已填充,excel,vba,Excel,Vba,我有一个HTML报告,可以在Excel中打开。我已经编写了宏来格式化此报告,因此它是可排序的,并且可以应用过滤器 我试图抓住斜杠之间的文本。报告大小(行数)未知 A列为空。列B将包含完整的路径名。如果填充了B列,则C列的文本应位于斜杠之间 例如,B列包含R:\testdocuments\test.html。我希望C列包含testdocuments C列的代码: Range("C9").Select ActiveCell.FormulaR1C1 = _ "=MID(RC[-1], FIND
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列,以便能够按目录进行筛选?首先,有几个一般提示:
application.screenUpdate=False
编辑:确保完成后将其设置回“True”Range(“A1”).SpecialCells(xlCellTypeLastCell).row
,而不是Range(“C9:C65000”)
,让Excel为您查找最后一行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
首先,以下是一些一般提示:
application.screenUpdate=False
编辑:确保完成后将其设置回“True”Range(“A1”).SpecialCells(xlCellTypeLastCell).row
,而不是Range(“C9:C65000”)
,让Excel为您查找最后一行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
@Lance,我确信将Application.ScreenUpdate设置为True并不是一个坏主意,但我已经编写了大量的宏,在这些宏中我没有也从来没有注意到任何不良影响。@DanThMan,这很有趣,我从来没有尝试过不这样做,也许它在代码完成后会自动重置。@Lance,我确信将Application.ScreenUpdate设置为True并不是一个坏主意,但我已经编写了大量的宏,在这些宏中我没有也从来没有注意到任何不良影响。@DanThMan,这很有趣,我从来没有尝试过不这样做,也许代码完成后它会自动重置。