[英]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.