Для петли между двумя листами - PullRequest
0 голосов
/ 09 июля 2019

Я запускаю сообщение об ошибке времени выполнения, пока выполняю циклическое копирование значений цикла с одного листа и вставляю их в другой лист.Вот мой код:

 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

Я знаю, что, кажется, есть проблема с активацией правильных листов во время выполнения цикла, но я не могу ее решить

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Кажется, что вы объявили верхние границы ваших циклов for в виде строки, а не числового типа данных, см. Ниже.

 Dim lr1 As String

Должен быть изменен на

Dim lr1 As Long

Я также только что заметил, что

wh1.Range(Cells(i, 2), Cells(i, 2)).Copy

Должно быть

wh1.Range(wh1.Cells(i, 2), wh1.Cells(i, 2)).Copy
0 голосов
/ 09 июля 2019

В какой строке вы видите ошибку?

Вы хотите использовать j в цикле for?

wh1.Range(Cells(i, 2), Cells(i, 2)).Copy '<- are one of these i's supposed to be j?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...