Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скопировать данные из одного столбца в другой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать данные из одного столбца в другой (Макросы/Sub)
Скопировать данные из одного столбца в другой
Leojse Дата: Суббота, 05.12.2020, 15:32 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Добрый день!
Пытаюсь написать макрос, который бы копировал значения из столбца "Данные 8" в столбец "Данные 4", но никак не могу победить проблему - данные не копируются.
Подскажите, пожалуйста, где я ошибся в коде?
К сообщению приложен файл: 6761630.xls(34.0 Kb)
 
Ответить
СообщениеДобрый день!
Пытаюсь написать макрос, который бы копировал значения из столбца "Данные 8" в столбец "Данные 4", но никак не могу победить проблему - данные не копируются.
Подскажите, пожалуйста, где я ошибся в коде?

Автор - Leojse
Дата добавления - 05.12.2020 в 15:32
lebensvoll Дата: Суббота, 05.12.2020, 16:25 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1002
Репутация: 30 ±
Замечаний: 0% ±

Excel 2010
Leojse, я не силен в макросах
Но мне кажется Вы на кнопку не установили само выполнение ((((
А если установить само выполнение мокроса 1
То вот тут
[vba]
Код
e.FormulaLocal = "=" & e.Offset(0, 5).Address
[/vba] код ругается
К сообщению приложен файл: 5957291.xls(39.0 Kb)


Кто бы ты ни был, мир в твоих руках

Сообщение отредактировал lebensvoll - Суббота, 05.12.2020, 17:02
 
Ответить
СообщениеLeojse, я не силен в макросах
Но мне кажется Вы на кнопку не установили само выполнение ((((
А если установить само выполнение мокроса 1
То вот тут
[vba]
Код
e.FormulaLocal = "=" & e.Offset(0, 5).Address
[/vba] код ругается

Автор - lebensvoll
Дата добавления - 05.12.2020 в 16:25
gling Дата: Суббота, 05.12.2020, 16:28 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2268
Репутация: 586 ±
Замечаний: 0% ±

2010
Здравствуйте. А без формулы никак?[vba]
Код
For Each e In Range("D12:D" & f)
        'e.FormulaLocal = "=" & e.Offset(1, 5).Address
        e.Value = e.Offset(0, 5).Value
    Next e
   
[/vba]


ЯД-41001506838083

Сообщение отредактировал gling - Суббота, 05.12.2020, 16:32
 
Ответить
СообщениеЗдравствуйте. А без формулы никак?[vba]
Код
For Each e In Range("D12:D" & f)
        'e.FormulaLocal = "=" & e.Offset(1, 5).Address
        e.Value = e.Offset(0, 5).Value
    Next e
   
[/vba]

Автор - gling
Дата добавления - 05.12.2020 в 16:28
Leojse Дата: Суббота, 05.12.2020, 16:36 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
gling, спасибо за подсказку, но так тоже не сработало.
Выдает ошибку "Application-defined or object-defined error"
К сообщению приложен файл: 0946168.xls(33.0 Kb)


Сообщение отредактировал Leojse - Суббота, 05.12.2020, 17:16
 
Ответить
Сообщениеgling, спасибо за подсказку, но так тоже не сработало.
Выдает ошибку "Application-defined or object-defined error"

Автор - Leojse
Дата добавления - 05.12.2020 в 16:36
bmv98rus Дата: Суббота, 05.12.2020, 17:33 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3498
Репутация: 616 ±
Замечаний: 0% ±

Excel 2013/2016
Это
? Range("D12:D" & f).SpecialCells(xlCellTypeVisible).Address
$1:$9,$12:$65536
все пояснит

а это
[vba]
Код
For Each e In Range("D12:D" & f)
        If Not e.Rows.Hidden Then e.Value = e.Offset(0, 5).Value
Next
[/vba]
исправит.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеЭто
? Range("D12:D" & f).SpecialCells(xlCellTypeVisible).Address
$1:$9,$12:$65536
все пояснит

а это
[vba]
Код
For Each e In Range("D12:D" & f)
        If Not e.Rows.Hidden Then e.Value = e.Offset(0, 5).Value
Next
[/vba]
исправит.

Автор - bmv98rus
Дата добавления - 05.12.2020 в 17:33
Pelena Дата: Суббота, 05.12.2020, 17:34 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 17631
Репутация: 3926 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Попробуйте так
[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]


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПопробуйте так
[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]

Автор - Pelena
Дата добавления - 05.12.2020 в 17:34
Leojse Дата: Суббота, 05.12.2020, 19:52 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 1 ±
Замечаний: 0% ±

2010/2013
Pelena, огромное Вам спасибо!!!
 
Ответить
СообщениеPelena, огромное Вам спасибо!!!

Автор - Leojse
Дата добавления - 05.12.2020 в 19:52
gling Дата: Суббота, 05.12.2020, 23:11 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2268
Репутация: 586 ±
Замечаний: 0% ±

2010
но так тоже не сработало.

А зачем вы оставили это .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
[/vba]


ЯД-41001506838083

Сообщение отредактировал gling - Суббота, 05.12.2020, 23:33
 
Ответить
Сообщение
но так тоже не сработало.

А зачем вы оставили это .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
[/vba]

Автор - gling
Дата добавления - 05.12.2020 в 23:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скопировать данные из одного столбца в другой (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования Jobsora jooble
© 2010-2021 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!