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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос числовых значений в ручную - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос числовых значений в ручную (Макросы/Sub)
Перенос числовых значений в ручную
tasdel Дата: Вторник, 19.01.2021, 12:22 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте уважаемые колдуны и шаманы!!!
Не могу справиться с задачей следующего содержания:
- имеется таблица, в которой необходимо перемещать числовые значения в произвольном порядке, в ручную, то бишь, выделяем
нужный диапазон с числами и вставляем этот диапазон в любую другую выделенную ячейку, если быть точнее, хочется исключить
процедуру копирования и вставки с помощью горячих клавиш, дабы сэкономить себе время.
Заранее спасибо!!!


Сообщение отредактировал tasdel - Вторник, 19.01.2021, 13:10
 
Ответить
СообщениеЗдравствуйте уважаемые колдуны и шаманы!!!
Не могу справиться с задачей следующего содержания:
- имеется таблица, в которой необходимо перемещать числовые значения в произвольном порядке, в ручную, то бишь, выделяем
нужный диапазон с числами и вставляем этот диапазон в любую другую выделенную ячейку, если быть точнее, хочется исключить
процедуру копирования и вставки с помощью горячих клавиш, дабы сэкономить себе время.
Заранее спасибо!!!

Автор - tasdel
Дата добавления - 19.01.2021 в 12:22
tasdel Дата: Вторник, 19.01.2021, 19:22 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Ребята, нашел код чуть его изменил под себя, работает как надо. Убрать бы еще лишние окна (InputBox) и было бы что-то вроде: - "как доктор прописал".

[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    
    
     Dim copyRange As Range, pasteRange As Range
     
    On Error Resume Next
    Set copyRange = Application.InputBox("Выделите ячейки, которые надо скопировать.", _
                    "Точное копирование", Default:=Selection.Address, Type:=8)
                    
    If copyRange Is Nothing Then Exit Sub
    
    Set pasteRange = Application.InputBox("Теперь выделите диапазон вставки." & vbCrLf & vbCrLf & _
                    "Диапазон должен быть равен по размеру исходному " & vbCrLf & _
                    "диапазону копируемых ячеек.", "Точное копирование", _
                    Default:=Selection.Address, Type:=8)
    
    If pasteRange.Cells.Count <> copyRange.Cells.Count Then
        MsgBox "Диапазоны копирования и вставки разного размера!", vbExclamation, "Ошибка копирования"
        
        Exit Sub
    End If
     
    If pasteRange Is Nothing Then
        Exit Sub
    Else
        pasteRange.Value = copyRange.Value
        
    End If
   Selection.Cells = ""
End Sub
[/vba]
 
Ответить
СообщениеРебята, нашел код чуть его изменил под себя, работает как надо. Убрать бы еще лишние окна (InputBox) и было бы что-то вроде: - "как доктор прописал".

[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    
    
     Dim copyRange As Range, pasteRange As Range
     
    On Error Resume Next
    Set copyRange = Application.InputBox("Выделите ячейки, которые надо скопировать.", _
                    "Точное копирование", Default:=Selection.Address, Type:=8)
                    
    If copyRange Is Nothing Then Exit Sub
    
    Set pasteRange = Application.InputBox("Теперь выделите диапазон вставки." & vbCrLf & vbCrLf & _
                    "Диапазон должен быть равен по размеру исходному " & vbCrLf & _
                    "диапазону копируемых ячеек.", "Точное копирование", _
                    Default:=Selection.Address, Type:=8)
    
    If pasteRange.Cells.Count <> copyRange.Cells.Count Then
        MsgBox "Диапазоны копирования и вставки разного размера!", vbExclamation, "Ошибка копирования"
        
        Exit Sub
    End If
     
    If pasteRange Is Nothing Then
        Exit Sub
    Else
        pasteRange.Value = copyRange.Value
        
    End If
   Selection.Cells = ""
End Sub
[/vba]

Автор - tasdel
Дата добавления - 19.01.2021 в 19:22
Pelena Дата: Вторник, 19.01.2021, 22:28 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19163
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Почему Вы думаете, что они лишние? С их помощью выделяются диапазоны. Или поясните, как Вы представляете работу макроса?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПочему Вы думаете, что они лишние? С их помощью выделяются диапазоны. Или поясните, как Вы представляете работу макроса?

Автор - Pelena
Дата добавления - 19.01.2021 в 22:28
tasdel Дата: Вторник, 19.01.2021, 23:09 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Pelena, К примеру:
-Выделил три ячейки с числами - сработал макрос на копирование, далее выделил три
любые другие ячейки - сработал макрос на вставку этих же чисел. Намного быстрее, чем Ctrl+C и Ctrl+V, тем более
клавиатура иногда может дать сбой.
(InputBox) - является как бы посредником, а мне хотелось бы напрямую, без посредника.


Сообщение отредактировал tasdel - Вторник, 19.01.2021, 23:19
 
Ответить
СообщениеPelena, К примеру:
-Выделил три ячейки с числами - сработал макрос на копирование, далее выделил три
любые другие ячейки - сработал макрос на вставку этих же чисел. Намного быстрее, чем Ctrl+C и Ctrl+V, тем более
клавиатура иногда может дать сбой.
(InputBox) - является как бы посредником, а мне хотелось бы напрямую, без посредника.

Автор - tasdel
Дата добавления - 19.01.2021 в 23:09
Serge_007 Дата: Среда, 20.01.2021, 08:58 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
Здравствуйте

Выделил три ячейки с числами - сработал макрос на копирование, далее выделил три
любые другие ячейки - сработал макрос на вставку этих же чисел
Убрать бы еще лишние окна (InputBox)
А как макрос без Inputbox должен "понять" что ему делать, копировать или вставлять?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте

Выделил три ячейки с числами - сработал макрос на копирование, далее выделил три
любые другие ячейки - сработал макрос на вставку этих же чисел
Убрать бы еще лишние окна (InputBox)
А как макрос без Inputbox должен "понять" что ему делать, копировать или вставлять?

Автор - Serge_007
Дата добавления - 20.01.2021 в 08:58
tasdel Дата: Среда, 20.01.2021, 09:55 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Serge_007, Скорее всего никак...
В принципе этот макрос через "enter"работает довольно-таки шустро.
 
Ответить
СообщениеSerge_007, Скорее всего никак...
В принципе этот макрос через "enter"работает довольно-таки шустро.

Автор - tasdel
Дата добавления - 20.01.2021 в 09:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос числовых значений в ручную (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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