【发布时间】:2016-06-21 03:03:56
【问题描述】:
我在 VBA 上有一个模块,它基本上为包含列中文本的每个单元格运行一个 foreach 循环。然后将每个单元格的内容复制到另一个工作表中,在该工作表中调用另一个函数 (DailyGet)。从函数生成的内容被复制回原始工作表(我通过记录宏生成了代码)。但是,由于在 foreach 循环中要处理许多单元格,因此非常耗时,因为每次运行宏都会在工作表之间切换。有什么方法可以加快这个过程?
Sub DailyComposite()
Dim SrchRng As Range, cel As Range
Set SrchRng = Range("B2:B100")
For Each cel In SrchRng
If cel.Value <> "" Then
Worksheets("Calculations").Range("B1").Value = cel.Value
Sheets("Calculations").Select
Call DailyGet
Range("D3:Z3").Select
Application.CutCopyMode = False
Selection.copy
Sheets("Summary").Select
cel.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End If
Next cel
Sheets("Calculations").Select
Application.CutCopyMode = False
Range("A1").Select
Sheets("Summary").Select
Range("A1").Select
End Sub
【问题讨论】: