[英]Copy and paste fix number of rows from all the sheets and paste into one sheet in VBA
[英]VBA Copy/Paste from one Sheet to All Others
我试图将工作表1的一个单元格(D1)复制到工作簿的所有其他工作表的单元格(D1)(我在这里遍历文件,工作表的数量有所不同)。
运行下面的代码时,“ ActiveSheet.Paste”行给我以下错误:“运行时错误'10004':Worksheet类的粘贴方法失败”。
这是有问题的代码:
'copy MSA code to sheets!=1
Sub MSAallSheets(wb As Workbook)
With wb
Range("D1").Copy
For Each ws In wb.Worksheets
If ws.Name <> "Page 1" Then
ws.Activate
ws.Range("D1").Select
ActiveSheet.Paste
End If
Next
End With
End Sub
如果有必要,这是我通过文件定义循环的方式:
Dim Filename, Pathname As String
Dim wb As Workbook
Pathname = "C:\Users\julia.anderson\Documents\HMDA\test\"
Filename = Dir(Pathname & "*.xlsx")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
Delete wb
MSAallSheets wb
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub
建议将是最欢迎的!
谢谢。
我猜你要从哪张纸复印...
Sub MSAallSheets(wb As Workbook)
With wb
Range("D1").Copy
For Each ws In wb.Worksheets
If ws.Name <> "Page 1" Then
wb.Sheets("Page 1").Range("D1").Copy _
ws.Range("D1")
End If
Next
End With
End Sub
这对我有用,但稍有改动:
Sub MSAallSheets(wb As Workbook, SourceSheet As String, SourceAddress As String)
With wb
Sheets(SourceSheet).Range(SourceAddress).Copy
For Each ws In wb.Worksheets
If ws.Name <> SourceSheet Then
ws.Activate
ws.Range(SourceAddress).Select
ActiveSheet.Paste
End If
Next
End With
End Sub
示例调用:
call MSAallSheets(activeWorkbook, "Page 1", "D1")
使用参数可以更轻松地更改次要细节/重复使用代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.