VBA,多个wooksheets /工作簿的计算
我有以下macros:
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
我如何在工作簿中的多个工作表中应用此function? 或多个工作簿的多个工作簿? 我有一个macros来打开我的目录中的所有Excel文件。 更好的是,如果我可以绕过打开所有的Excel文件。
几乎想要在大量的文件/表单中自动化这个macros。
任何帮助,将不胜感激。
如果不打开所有的工作簿,就无法计算,但是您正在寻找的是一个简单的命令: Application.CalculateFull
。 它将重新计算所有打开的工作簿中的所有工作表。 请注意,这可能需要很长时间,可能会使Excel看起来没有响应,直到完成。 另外,如果打开的工作表在Excel中与上面的macros不同,它们将不会计算。
所以我会想象你的过程如下所示:
- 运行你的macros来打开所有的文件
- 在
.Calculation = xlCalculationAutomatic
之后使用.Calculation = xlCalculationAutomatic
运行您的macros,并在End With
,End Sub