У меня есть набор данных из одной таблицы в диапазоне листов: H11: BG25. Я хочу запустить немного кода, чтобы посмотреть в каждый столбец, и если сумма этого col> 0, скопируйте весь диапазон для этого столбца. Если сумма равна < 0, ничего не делайте. Пока у меня есть следующий код, но он не копирует диапазон, он копирует только значения, отличные от 0.VBA копия с листа на другой, основанная на условии
Sub CopyActuals()
For iCol = 8 To 59
For iRow = 11 To 25
With Worksheets("Project - Actual (Hours)").Cells(iRow, iCol)
' Check that cell is not empty.
If 'Condition to be if there is any data in the rows 11-25 for each column, then copy the whole column
Else
Worksheets("Project - Actual (Hours)").Cells(iRow, iCol).Copy
Worksheets("Project - Budget (Hours)").Cells(iRow, iCol).PasteSpecial Paste:=xlPasteValues
Worksheets("Project - Budget (Hours)").Cells(iRow, iCol).PasteSpecial Paste:=xlPasteFormats
End If
End With
Next iRow
Next iCol
End Sub
вы можете проверить на последней строке, которая имеет данные. Если броня больше 25 или 25, сделайте что-нибудь. Последняя строка может быть найдена «lastrow = Activeworkbook.Activesheet.Cells (Activeworkbook.ActiveSheet.Rows.Count,« a »). End (xlUp) .Row« – Kathara
, если вы добавите «Dim Sht1 As Worksheet Sht1 = ActiveWorkbook.Sheets («Sheet1») «тогда вы могли бы заменить« activeworbook.Activeworksheet »на« Sht1 » – Kathara
Спасибо, я думаю, моя проблема в том, что я хочу, чтобы он скопировал весь столбец из строк 11:25 вместо значений, отличных от 0. –