【发布时间】:2012-10-02 11:42:06
【问题描述】:
我正在尝试创建一个宏,它在工作簿中的每个工作表上执行以下操作。
Range("U10").Select
FormulaR1C1 = "=R3C2"
Range("U10").Select
Selection.AutoFill Destination:=Range("U10:U19"), Type:=xlFillDefault
Range("U10:U19").Select
Selection.Copy
Range("V10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("V10:V19").Select
Selection.Copy
Range("U10").Select
ActiveSheet.Paste
Range("V9:V19").Select
Selection.ClearContents
Range("A16").Select
Selection.ClearContents
我试过了:
Sub parse()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
'The above code
Next ws
End Sub
不幸的是,这似乎只是将此宏应用于当前活动工作表。
我觉得这与我没有正确引用范围有关(我是 VBA 的新手,所以任何解释都会真正帮助我找到解决方案!)。 IE。它应该像 ws.Range... 等等还是我应该做一些完全不同的事情?
【问题讨论】:
-
是的,
ws.Range...就是您所需要的。始终使用工作表限定 Range 是一种很好的做法,在这种情况下,它是必需的。您还需要编辑代码以删除Select,因为如果父工作表未处于活动状态,您将无法选择范围。
标签: loops excel excel-2007 vba