У меня есть лист Excel, где первый лист содержит все основные данные, который будет иметь размер около 500 строк и переходит к столбцу R, этот лист называется общим листом. Столбец O содержит месяц, а столбец P - год.
У меня есть еще один лист, на который я хотел бы скопировать данные, это называется «месяц прогноза». вверху в B1 выбран месяц, в который я хотел бы скопировать, а в D1 - год. Я хотел бы, чтобы кнопка прочитала эти две ячейки и скопировала данные из «общего листа», основываясь на этом.
Я написал этот код, как показано ниже, но по какой-то причине данные вводятся в «прогнозируемый месяц» 10 раз перед добавлением следующего (также 10 раз). У меня должно быть только 3 куска данных на этом листе, но вместо этого есть 30, 10 для каждого.
Кроме того, верхние 3 строки на каждом листе имеют заголовки, поэтому данные должны начинаться с записи в строке 4 (что и происходит)
Пожалуйста, кто-нибудь может помочь ??
Private Sub CommandButton1_Click()
Dim month As String
Dim year As String
Dim c As Range
Dim d As Range
Dim k As Integer
Dim source As Worksheet
Dim targetforecastmonth As Worksheet
'change worksheet designations as needed
Set source = ActiveWorkbook.Worksheets("Overall Sheet")
Set targetforecastmonth = ActiveWorkbook.Worksheets("Forecast Month")
targetforecastmonth.Range("A4:Z1000").Clear
month = ActiveWorkbook.Worksheets("Forecast Month").Range("B1")
year = ActiveWorkbook.Worksheets("Forecast Month").Range("D1")
k = 4
For Each c In source.Range("O4:O1000")
For Each d In source.Range("P4:P1000")
If c = month And d = year Then
source.Rows(c.Row).Copy targetforecastmonth.Rows(k)
k = k + 1
End If
Next d
Next c
End Sub