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