Скопируйте и вставьте данные по дате - Excel VBA

У меня была такая же проблема на Ubuntu, и я решил ее распаковать все * .pack-файлы в каталог jdk. например: cd /usr/java/jdk1.7.0_03/jre/lib sudo ../bin/unpack200 rt.pack rt.jar

1
задан Pᴇʜ 18 January 2019 в 07:10
поделиться

2 ответа

Я предполагаю, что вы не хотите перезаписывать Sheets("Plan2").Range("r56") каждый раз, когда находите значение. В этом случае этот код записывает найденное значение в ту же строку, в которой оно найдено на первом листе.

Это работает без копирования-вставки и выбора или активации ячеек / листов. Также, если вы укажете свой лист с исходными данными, как я, даже не имеет значения, с какого листа вы запускаете макрос.

Sub Copiar()

Dim range1 As Range
Set range1 = Sheets(1).Range("K56:K58")

For Each cell In range1
   If cell.Value = Sheets(1).Range("R55").Value Then
        Sheets("Plan2").Range("R" & cell.Row).Value = cell.Offset(0, 2).Value
   End If
Next

End Sub
0
ответ дан horst 18 January 2019 в 07:10
поделиться

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

Sub Copiar()  
Dim range1 As Range, destin as Range  
Set range1 = Range("k56:k58")
Set destin= Sheets("Plan2").Range("r56")  
For Each cell In range1
   If cell.Value = Range("R55").Value Then
      cell.Offset(0, 2).copy destin
      set destin=destin.offset(1,0)    ' Crucial bit here
   End If
Next  
End Sub
0
ответ дан Roy Brander 18 January 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: