vba:在所有工作表中执行相同的代码

问题描述 投票:2回答:2

简单的问题。以下代码工作正常:

Dim hoja as worksheet
For Each hoja In Workbooks("Origen.xlsx").Worksheets
Msgbox hoja.name
next

但是,以下代码不起作用。任何人都可以说为什么并让它发挥作用?

Dim hoja as worksheet
For Each hoja In Workbooks("Origen.xlsx").Worksheets
Range("a1:a2").copy Destination:=Range("a3:a4")
next

第二个代码只在其中一个工作表中复制/粘贴,但不是全部。你能帮忙吗?我对这么简单的事感到非常沮丧。谢谢!

vba foreach
2个回答
0
投票

尝试hoja.Range而不是简单的Range


1
投票

Range对象,如果不合格,则始终引用活动工作表。 如果您想每次在不同的工作表上复制粘贴,请使用以下代码:

Dim hoja as worksheet
For Each hoja In Workbooks("Origen.xlsx").Worksheets
hoja.Range("a1:a2").copy Destination:=hoja.Range("a3:a4")
next
© www.soinside.com 2019 - 2024. All rights reserved.