VBA代码在运行时不工作?

VBA代码在运行时不工作?,vba,excel,Vba,Excel,我试图复制一个区域的信息和特殊粘贴的价值观。通过更改for循环末尾的特定单元格值,我也在更改它周围区域中的信息。因此,我尝试在这462次循环中,将每个区域特别粘贴到不同的工作表上,每个区域将粘贴到先前粘贴的行(从第2行开始)下方的行上。然而,当我实际运行程序时,绝对没有发生任何事情。有人能帮忙吗 非常感谢,代码粘贴在下面: Sub timeToLoop() Dim currentVal As Integer, count As Integer, countStr As String, i As

我试图复制一个区域的信息和特殊粘贴的价值观。通过更改for循环末尾的特定单元格值,我也在更改它周围区域中的信息。因此,我尝试在这462次循环中,将每个区域特别粘贴到不同的工作表上,每个区域将粘贴到先前粘贴的行(从第2行开始)下方的行上。然而,当我实际运行程序时,绝对没有发生任何事情。有人能帮忙吗

非常感谢,代码粘贴在下面:

Sub timeToLoop()
Dim currentVal As Integer, count As Integer, countStr As String, i As Integer
count = 1
    For i = 1 To i = 462
        count = count + 1
        countStr = CStr(count)
        currentVal = Range("V34").Value
        Worksheets("Query_Tab").Range("V34:BQ34").Copy
            With Worksheets("Compiled")
                .Range(.Cells(countStr, "A"), _
                   .Cells(countStr, "AV")).PasteSpecial xlValues
            End With
        Worksheets("Query_Tab").Range("V34").Value = currentVal + 1
    Next i
End Sub

您的问题在For循环中,应该是:

For i = 1 To 462
还有其他一些小问题/提示

  • 行/列计数器的类型为Long
  • 无需使用
    countStr
  • 根据V34:BQ34的格式,您只需在
    范围(“V34:BQ34”)之后分配一个目标范围。复制
    ,例如
    范围(“A1:A10”)。复制范围(“B1:B10”)
  • 可以在Range()方法中使用字符串连接。e、 g.
    范围(“A”和计数&“:”和“AV”和计数)

您缺少一份参考资料

currentVal=范围(“V34”).值

应参考

currentVal=工作表(“查询选项卡”).范围(“V34”).值

我同意帕特里克的看法。你真的太复杂了

Sub timeToLoop()
    Application.ScreenUpdating = False

    Dim currentVal As Integer, i As Integer
    With Worksheets("Query_Tab")

        For i = 2 To 463
            currentVal = .Range("V34").Value

            .Range("V34:BQ34").Copy Worksheets("Compiled").Range("A" & i & ":" & "AV" & i)

            .Range("V34").Value = currentVal + 1
        Next i

    End With

    Application.ScreenUpdating = True
End Sub

是的。语句
i=462
的计算结果为
False
,这将强制转换为0,并使循环在i=1到0时的计算结果为
。您可以通过添加
步骤-1
来验证这一点-循环将执行两次。您应该在YouTube上尽可能多地观看WiseOWLStorial。这里有一个。我还建议您免费下载,它将为您缩进代码。为什么要在
.Cells()
中使用数字?好的,这是可能的,但是对于
.Range()
。。。如果
Count
始终等于i+1,则无需使用两个变量。要复制值,无需复制/粘贴。一个简单的
SheetB.RangeB.value=SheetA.RangeA.value
就可以了。