VBA中“结尾为”和“下一个”的正确位置是什么

时间:2019-04-16 17:58:59

标签: vba

这是上一个问题的后续内容。我正在尝试创建一个复制/粘贴宏,其中涉及一个选项卡上的下拉菜单和另一选项卡上的sumifs。我想要宏(按顺序) 1在下拉选项卡上插入一个值,然后计算公式。 2转到另一个选项卡,将相应的行粘贴为值。 3对下一个下拉值重复1-2

宏是否在正确的地方结束/结束了我需要做的事情?

Sub Copy_Paste()
Sheets("MS Wall Summary Weekly View").Activate
    Dim vRws As Long, vRng As Range
    Dim d As Range, d8 As Range, Wst As Worksheet
    Dim vRng2 As Range, vRws2 As Long, i As Long

Set Wst = Worksheets("MS Wall Summary Weekly View")
Set d8 = Wst.Range("D8")

With Wst
   vRws = .Cells(.Rows.Count, "A").End(x1Up).Row
    Set vRng = Range(.Cells(2, "A"), .Cells(vRws, "A"))

For Each d In vRng.Cells

d8 = d
Sheets("Email").Activate
With ActiveSheet
    vRws2 = .Cells(.Rows.Count, "U").End(x1Up).Row
    For i = 8 To vRws2
        Set vRng2 = .Range(.Cells(i, "U"), .Cells(i, "AC"))
            vRng2.Copy
                vRng2.PasteSpecial Paste:=xlPasteValues

Next d
   Next i
End With
End With

第一张图片对应于宏的第一部分。下拉菜单是A栏,将其插入D8 enter image description here

第二张图片在“电子邮件”标签上。总和基于第一个选项卡中的单元格D8。我想要以U8:AC8开头的一行粘贴为值。

enter image description here

1 个答案:

答案 0 :(得分:0)

我想您必须更改“ next d”和“ next i”的位置

如果您缩进代码,将更容易发现问题。