Добрый день! Пытаюсь написать макрос, который бы копировал значения из столбца "Данные 8" в столбец "Данные 4", но никак не могу победить проблему - данные не копируются. Подскажите, пожалуйста, где я ошибся в коде?
Добрый день! Пытаюсь написать макрос, который бы копировал значения из столбца "Данные 8" в столбец "Данные 4", но никак не могу победить проблему - данные не копируются. Подскажите, пожалуйста, где я ошибся в коде?Leojse
Sub Макрос1() IfNot ActiveSheet.AutoFilterMode Then Rows("9:9").AutoFilter
ActiveSheet.Range("A:I").AutoFilter Field:=1, Criteria1:="Расходники"
Dim e As Range Dim f AsLong
f = Cells(Rows.Count, 1).End(xlUp).Row If f >= 12Then For Each e In Range("D12:D" & f) IfNot e.EntireRow.Hidden Then e = e.Offset(0, 5) Next e EndIf
EndSub
Попробуйте так
Sub Макрос1() IfNot ActiveSheet.AutoFilterMode Then Rows("9:9").AutoFilter
ActiveSheet.Range("A:I").AutoFilter Field:=1, Criteria1:="Расходники"
Dim e As Range Dim f AsLong
f = Cells(Rows.Count, 1).End(xlUp).Row If f >= 12Then For Each e In Range("D12:D" & f) IfNot e.EntireRow.Hidden Then e = e.Offset(0, 5) Next e EndIf
А зачем вы оставили это .SpecialCells(xlCellTypeVisible), в сообщении 3 этого нет. Уберите это в файле из сообщения 4 и будет работать. А можно и не проверять наличие автофильтра, он же всё равно ставится в 9 строку. Еще вариант
Sub Макрос1() Dim e As Range Dim f AsLong
f = Cells(Rows.Count, 1).End(xlUp).Row
Range("A9:I" & f).AutoFilter Field:=1, Criteria1:="Расходники" If f >= 12Then For Each e In Range("D12:D" & f)
e.Value = e.Offset(0, 5).Value Next e EndIf EndSub
А зачем вы оставили это .SpecialCells(xlCellTypeVisible), в сообщении 3 этого нет. Уберите это в файле из сообщения 4 и будет работать. А можно и не проверять наличие автофильтра, он же всё равно ставится в 9 строку. Еще вариант
Sub Макрос1() Dim e As Range Dim f AsLong
f = Cells(Rows.Count, 1).End(xlUp).Row
Range("A9:I" & f).AutoFilter Field:=1, Criteria1:="Расходники" If f >= 12Then For Each e In Range("D12:D" & f)
e.Value = e.Offset(0, 5).Value Next e EndIf EndSub