【发布时间】:2017-03-16 21:43:23
【问题描述】:
VBA 新手,自学。 下面代码的目的是从工作簿中的每个工作表中复制单元格“D5”,然后将所有数据粘贴到工作簿“数据”中,范围为 D4:D300(范围非常广泛,因此可用的单元格比复制的单元格多)。问题是下面的代码不起作用。代码所做的所有事情都是在指示的范围内(D4:D300)处理第一张纸上的单元格 D5。基本上复制相同的值 266 次。非常感谢任何帮助。 如果有更优雅/更有效的方式来编写此代码,请告知。
Sub copycell()
Dim sh As Worksheet
Dim wb As Workbook
Dim DestSh As Worksheet
Dim LastRow As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set wb = ThisWorkbook
Set DestSh = wb.Sheets("Data")
' Loop through worksheets that start with the name "20"
For Each sh In ActiveWorkbook.Worksheets
' Specify the range to copy the data
sh.Range("D5").Copy
' Paste copied range into "Data" worksheet in Column D
With DestSh.Range("D4:D300")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End With
Next
End Sub
【问题讨论】: