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
属性而不是复制和粘贴值是一种很好的做法。这很完美。非常感谢,太好了。非常感谢