在VBA循环中苦苦挣扎(查找,复制,粘贴,重复直到查找为“”)

时间:2016-10-18 18:42:04

标签: excel vba excel-vba loops

我是VBA的新手,我正尽力做我自己的编码,但是我遇到了麻烦。最近我被介绍了循环的概念,我仍然围绕着它。我目前要做的是:

在工作簿1上,从单元格A2开始,复制该单元格下方的范围(A3:H12),然后转到工作簿2,从工作簿1中找到A2值,并粘贴下面的值。然后重复此过程,直到工作簿1中的起始单元格为空。

在练习册1上,有A2,A18,A34等数据,基本上是16的间隔,我不知道如何在没有声明固定变量的情况下将其考虑在内。

到目前为止,这是我的(失败的)代码,我确信这些代码充满逻辑错误:

Private Sub test()
Dim x As Workbook, y As Workbook
Dim sdt As String, wbNam As String, dt As String, ldt As String, i As Long

wbNam = "Productivity "
dt = Sheet1.Range("B1").Value
sdt = Format(CStr(dt), "m.d.yy") & ".xlsx"
ldt = Format(CStr(dt), "yyyy") & "\" & Format(CStr(dt), "mm") & "_" & MonthName(Month(dt)) & "_" & Year(dt)

With Sheets("Team One")
    sn = Cells(1).CurrentRegion.Value
End With

Set y = Workbooks.Open("S:\" & ldt & "\" & wbNam & sdt)

For i = 2 To UBound(sn)
    If sn(i, 1) <> vbNullString Then
Set x = ThisWorkbook

'Now, copy what you want from x:
        x.Activate
        ActiveSheet.Cells.Find(sn(i, 2)).Resize(10, 8).Offset(1, 0).Copy y.Sheets("MSP WPS").Cells.Find(sn(i, 2)).Offset(1, 0)
        ActiveSheet.Cells.Find(sn(i, 2)).Resize(2, 8).Offset(12, 0).Copy y.Sheets("MSP WPS").Cells.Find(sn(i, 2)).Offset(12, 0)

'Close x
        x.Close SaveChanges:=True
    End If

Next

End Sub

我真的很感激任何人的帮助/见解!

0 个答案:

没有答案