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