Проходя по строкам, скопируйте ячейку и затем вернитесь к исходному листу в новом цикле - PullRequest
0 голосов
/ 04 сентября 2018

Я пытался собрать код для следующего запроса, я не эксперт, и мне действительно нужна помощь в этом, заранее спасибо:

Есть 2 листа: 1 «База данных», 2 «Система показателей».

  • Прокручивать строки в столбце C базы данных, каждое отдельное значение будет скопирован в ячейку B3 таблицы показателей, это изменит значение ячейки C30.
  • Новое значение для ячейки C30 затем необходимо будет скопировать обратно в Таблицу базы данных в новом столбце «F», и оно будет повторяться до тех пор, пока последняя клетка Заполнение списка.
  • Требуется, чтобы она соответствовала ячейке, поэтому первое значение в C2 будет нуждаться в соответствующем значении в F2 и т. Д.
  • База данных будет изменяться со временем, поэтому для нее требуется код, позволяющий учитывать новые входы.

Я пытался изменить этот код, который я видел в другом вопросе: Циклы в VBA? Я хочу использовать цикл для выбора и копирования до последней ячейки , но не могу заставить его работать ...

Большое спасибо!

Sub LoopThroughColumnC()

Dim LastRowInColC As Long, Counter As Long
Dim SourceCell As Range, DestCell As Range
Dim MySheet As Worksheet
'set references up-front
Set MySheet = ThisWorkbook.Worksheets("Dati per calcolo")
Set CopySheet = ThisWorkbook.Worksheets("Scheda costo tessuto e capo")
With MySheet
    LastRowInColC = .Range("C" & .Rows.Count).End(xlUp).Row
    Set DestCell = ThisWorkbook.Worksheets("Scheda costo tessuto e capo").Range("B3")
End With
'loop through column C, copying from cells(counter, 11) to B3
With MySheet
    For Counter = 1 To LastRowInColC
        Set SourceCell = .Range("C" & Counter)
        SourceCell.Copy Destination:=DestCell

    If Target.Address = Range("A1").Address Then
        ' Get the last row on our destination sheet (using Sheet2, col A here)...
        Dim intLastRow As Long
        intLastRow = Sheet2.Cells(Sheet2.Rows.Count, "B").End(xlUp).Row
        ' Add our value to the next row...
        Sheet2.Cells(intLastRow + 1, "A") = Target.Value
    End If

    Next Counter
End With
End Sub

Here's how it looks

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...