【发布时间】:2019-07-09 12:44:54
【问题描述】:
我在运行 for 循环时遇到运行时间错误,从一张纸上复制值并将它们粘贴到另一张纸上。 这是我的代码;
Option Explicit
Sub TeknikerData()
Dim Lag As String
Dim lr1 As long
Dim lr2 As Long
Dim i As Integer
Dim j As Integer
Dim wh1 As Worksheet
Dim wh2 As Worksheet
Set wh1 = Sheets("Data")
Set wh2 = Sheets("Dashboard")
lr1 = wh1.Cells(Rows.Count, 4).End(xlUp).Row
Lag = wh2.Cells(12, 1).Value
For i = 2 To lr1
If wh1.Cells(i, 4) = Lag Then
wh1.Range(Cells(i, 2), Cells(i, 2)).Copy
wh2.Range("B50").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
End If
Next i
End Sub
我知道在运行循环时激活正确的工作表似乎有问题,但我无法解决它
【问题讨论】:
-
你从不使用
j。那个循环是干什么用的?另外,哪一行会引发错误。看着它,wh1.Range(Cells(i, 2), Cells(i, 2)).Copy看起来很可疑。为什么有两个Cells(i, 2)实例?