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

Вход

Регистрация

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

 

= Мир MS Excel/Упростить процедуру копирования ячеек - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Упростить процедуру копирования ячеек
mkotik Дата: Понедельник, 17.09.2018, 17:44 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, Уважаемые Знатоки!
В VBA - не силен, прошу не кидать "тапками"...
Наткнулся на такую процедуру в большом листинге.
Посмотрел - идет простейшее копирование ячеек и вставка значений в другие ячейки.
Как бы это упростить без вреда?
[vba]
Код

Sub Значение_приобретения()
    Range("AM9").Select
    Selection.Copy
    Range("AK9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
...
    
    Range("AK33").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AM34").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AK34").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
[/vba]

Ячейки идут по порядку
Заранее благодарен


Сообщение отредактировал mkotik - Понедельник, 17.09.2018, 17:45
 
Ответить
СообщениеДобрый день, Уважаемые Знатоки!
В VBA - не силен, прошу не кидать "тапками"...
Наткнулся на такую процедуру в большом листинге.
Посмотрел - идет простейшее копирование ячеек и вставка значений в другие ячейки.
Как бы это упростить без вреда?
[vba]
Код

Sub Значение_приобретения()
    Range("AM9").Select
    Selection.Copy
    Range("AK9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
...
    
    Range("AK33").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AM34").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AK34").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
[/vba]

Ячейки идут по порядку
Заранее благодарен

Автор - mkotik
Дата добавления - 17.09.2018 в 17:44
Pelena Дата: Понедельник, 17.09.2018, 18:11 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
Насколько я понимаю, вот это
[vba]
Код
Range("AM9").Select
    Selection.Copy
    Range("AK9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
[/vba]
можно заменить на
[vba]
Код
Range("AK9")=Range("AM9").Value
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНасколько я понимаю, вот это
[vba]
Код
Range("AM9").Select
    Selection.Copy
    Range("AK9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
[/vba]
можно заменить на
[vba]
Код
Range("AK9")=Range("AM9").Value
[/vba]

Автор - Pelena
Дата добавления - 17.09.2018 в 18:11
mkotik Дата: Понедельник, 17.09.2018, 18:57 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, спасибо за оперативность!
А как правильно вставить цикл?
Действия однотипные?
Или попытаться .xls вставить?
 
Ответить
СообщениеPelena, спасибо за оперативность!
А как правильно вставить цикл?
Действия однотипные?
Или попытаться .xls вставить?

Автор - mkotik
Дата добавления - 17.09.2018 в 18:57
_Boroda_ Дата: Понедельник, 17.09.2018, 19:08 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Какой цикл?
Если ячейки идут подряд, то цикл не нужен, можно сразу вот так
[vba]
Код
Range("AK9:AK34")=Range("AK9:AK34").Value
[/vba]
А вообще - положите сюда файл и словами поясните что откуда куда по какому условию нужно


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКакой цикл?
Если ячейки идут подряд, то цикл не нужен, можно сразу вот так
[vba]
Код
Range("AK9:AK34")=Range("AK9:AK34").Value
[/vba]
А вообще - положите сюда файл и словами поясните что откуда куда по какому условию нужно

Автор - _Boroda_
Дата добавления - 17.09.2018 в 19:08
mkotik Дата: Понедельник, 17.09.2018, 19:31 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо, проверю ночью!
 
Ответить
Сообщение_Boroda_, спасибо, проверю ночью!

Автор - mkotik
Дата добавления - 17.09.2018 в 19:31
mkotik Дата: Понедельник, 17.09.2018, 21:04 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Прикладываю файл
К сообщению приложен файл: 9835761.xls (46.0 Kb)
 
Ответить
СообщениеПрикладываю файл

Автор - mkotik
Дата добавления - 17.09.2018 в 21:04
_Boroda_ Дата: Понедельник, 17.09.2018, 22:17 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
см. пост 4. только диапазон поменять
[vba]
Код
Range("AK9:AK34") = Range("AM9:AM34").Value
[/vba]
Или с произвольным количеством строк
[vba]
Код
Sub rr()
    r0_ = 9
    r1_ = Range("AM" & Rows.Count).End(3).Row
    Cells(r0_, "AK").Resize(r1_ - r0_ + 1) = Cells(r0_, "AM").Resize(r1_ - r0_ + 1).Value
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениесм. пост 4. только диапазон поменять
[vba]
Код
Range("AK9:AK34") = Range("AM9:AM34").Value
[/vba]
Или с произвольным количеством строк
[vba]
Код
Sub rr()
    r0_ = 9
    r1_ = Range("AM" & Rows.Count).End(3).Row
    Cells(r0_, "AK").Resize(r1_ - r0_ + 1) = Cells(r0_, "AM").Resize(r1_ - r0_ + 1).Value
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 17.09.2018 в 22:17
mkotik Дата: Понедельник, 17.09.2018, 23:46 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо за участие!
Выдаёт ошибку 13
Файл приложил
К сообщению приложен файл: 7864220.xls (94.0 Kb)
 
Ответить
Сообщение_Boroda_, спасибо за участие!
Выдаёт ошибку 13
Файл приложил

Автор - mkotik
Дата добавления - 17.09.2018 в 23:46
_Boroda_ Дата: Вторник, 18.09.2018, 00:48 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Дык хто ж знал, что у Вас там еще события листа обрабатываются?
Вот так сделайте
[vba]
Код
Sub Значение_Приобретения()
    Application.EnableEvents = 0
    Range("AK9:AK34") = Range("AM9:AM34").Value
    Application.EnableEvents = 1
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДык хто ж знал, что у Вас там еще события листа обрабатываются?
Вот так сделайте
[vba]
Код
Sub Значение_Приобретения()
    Application.EnableEvents = 0
    Range("AK9:AK34") = Range("AM9:AM34").Value
    Application.EnableEvents = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 18.09.2018 в 00:48
mkotik Дата: Вторник, 18.09.2018, 01:07 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо, всё работает!
 
Ответить
СообщениеСпасибо, всё работает!

Автор - mkotik
Дата добавления - 18.09.2018 в 01:07
mkotik Дата: Вторник, 18.09.2018, 01:43 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 181
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Формула работает, значения меняются, но "выключилась" обработка событий...
Подробности описал в файле
К сообщению приложен файл: 8699732.xls (94.5 Kb)
 
Ответить
СообщениеФормула работает, значения меняются, но "выключилась" обработка событий...
Подробности описал в файле

Автор - mkotik
Дата добавления - 18.09.2018 в 01:43
_Boroda_ Дата: Вторник, 18.09.2018, 09:23 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Не, так дело не пойдет.
Ваш вопрос про копирование плавно перетек в вопрос об изменении прозрачности автофигур в зависимости от числовых значений. Это уже совсем другой вопрос, поэтому здесь его обсуждать не нужно. Создайте отдельную тему, назовите примерно так: "Изменение прозрачности автофигур в зависимости от чисел", файл этот же приложите.
А ответ уже готов :D


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНе, так дело не пойдет.
Ваш вопрос про копирование плавно перетек в вопрос об изменении прозрачности автофигур в зависимости от числовых значений. Это уже совсем другой вопрос, поэтому здесь его обсуждать не нужно. Создайте отдельную тему, назовите примерно так: "Изменение прозрачности автофигур в зависимости от чисел", файл этот же приложите.
А ответ уже готов :D

Автор - _Boroda_
Дата добавления - 18.09.2018 в 09:23
  • Страница 1 из 1
  • 1
Поиск:

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