Excel 简单的复制/粘贴循环不适用于每个工作表

Excel 简单的复制/粘贴循环不适用于每个工作表,excel,vba,Excel,Vba,我正在尝试循环浏览工作簿中的所有工作表。在每张工作表上,我想从一个单元格复制一个值,然后将该值粘贴到该工作表的另一个单元格上,然后继续浏览工作簿。我写的代码在所有工作表中循环,但仅在宏运行时在工作表上执行复制粘贴 Sub CleanUp() Dim ws as Worksheet For Each ws in ThisWorkbook.Sheets Range("BB2").Copy Range("A1") Next ws End Sub 实际上,我想运行一系列更复杂的更改,但我

我正在尝试循环浏览工作簿中的所有工作表。在每张工作表上,我想从一个单元格复制一个值,然后将该值粘贴到该工作表的另一个单元格上,然后继续浏览工作簿。我写的代码在所有工作表中循环,但仅在宏运行时在工作表上执行复制粘贴

Sub CleanUp()

Dim ws as Worksheet

For Each ws in ThisWorkbook.Sheets
    Range("BB2").Copy Range("A1")
Next ws

End Sub

实际上,我想运行一系列更复杂的更改,但我甚至无法使其正常工作。

将工作表附加到每个范围:

Sub CleanUp()

Dim ws as Worksheet

For Each ws in ThisWorkbook.Sheets
    ws.Range("BB2").Copy ws.Range("A1")
Next ws

End Sub

将工作表附加到每个范围:

Sub CleanUp()

Dim ws as Worksheet

For Each ws in ThisWorkbook.Sheets
    ws.Range("BB2").Copy ws.Range("A1")
Next ws

End Sub

可以运行得更快的替代解决方案:

Sub CleanUp()

Dim ws as Worksheet

For Each ws in ThisWorkbook.Sheets
    ws.Range("A1").Value = ws.Range("BB2").Value
Next ws

End Sub

可以运行得更快的替代解决方案:

Sub CleanUp()

Dim ws as Worksheet

For Each ws in ThisWorkbook.Sheets
    ws.Range("A1").Value = ws.Range("BB2").Value
Next ws

End Sub

最明显的是速度更快,因为它避免了剪贴板。这在这里可能不太明显,但它是一个很好的建议,更有力。我很感激。我对编码相当陌生,没有意识到这是.value和复制方法之间的区别。没问题,使用
.value
属性而不是复制和粘贴值是一种很好的做法。因为它避免了剪贴板,所以速度肯定更快。这在这里可能不太明显,但它是一个很好的建议,更有力。我很感激。我对编码相当陌生,没有意识到这是.value和复制方法之间的区别。没问题,使用
.value
属性而不是复制和粘贴值是一种很好的做法。这很完美。非常感谢,太好了。非常感谢