我有以下宏:
Sub PercentCalc()
Dim xrng As Range, lrw As Long, lrng As Range, i As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
For i = 1 To 25
With Columns(i)
.TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, TrailingMinusNumbers:=True
End With
Next
lrw = Columns("A:Y").Find("*", , xlValues, , xlRows, xlPrevious).Row
Set lrng = Range("A" & lrw + 2)
With Range("A2:A" & lrw)
lrng.Formula = "=COUNTA(" & .Address(0, 0) & ")/ROWS(" & .Address(0, 0) & ")"
End With
Set xrng = Range(lrng, Cells(lrng.Row, "Y"))
lrng.AutoFill xrng, Type:=xlFillDefault
xrng.Style = "Percent"
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
如何在工作簿中的多个工作表中应用此功能?或者多个工作表有多个工作表?我有一个宏来打开我的目录中的所有Excel文件。如果我可以绕过打开所有Excel文件,那就更好了。
非常想在大量文件/工作表中自动化这个宏。
答案 0 :(得分:1)
如果不打开所有工作簿,就无法计算,但有一个简单的命令可以查找您要查找的内容:Application.CalculateFull
。它会重新计算所有打开的工作簿中的所有工作表。请注意,这可能需要很长时间,并且可能会使Excel看起来没有响应,直到它完成。此外,如果打开的工作表与上面的宏处于不同的Excel实例中,则无法计算。
所以我想你的过程看起来像这样:
.CalculateFull
之后.Calculation = xlCalculationAutomatic
,End With
End Sub
运行上方的宏