команда обмена значений двух выделенных ячеек
vitalife
Дата: Среда, 28.01.2015, 13:02 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Здравствуйте, Подскажите, есть ли команда или сочетание быстрых клавиш для обмена значений двух выделенных ячеек. Т.Е. выделяешь 2 ячейки, нажимаешь горячую клавишу и ВОУЛЯ - значения автоматически обмениваются местами.
Здравствуйте, Подскажите, есть ли команда или сочетание быстрых клавиш для обмена значений двух выделенных ячеек. Т.Е. выделяешь 2 ячейки, нажимаешь горячую клавишу и ВОУЛЯ - значения автоматически обмениваются местами. vitalife
Ответить
Сообщение Здравствуйте, Подскажите, есть ли команда или сочетание быстрых клавиш для обмена значений двух выделенных ячеек. Т.Е. выделяешь 2 ячейки, нажимаешь горячую клавишу и ВОУЛЯ - значения автоматически обмениваются местами. Автор - vitalife Дата добавления - 28.01.2015 в 13:02
DJ_Marker_MC
Дата: Среда, 28.01.2015, 13:03 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация:
213
±
Замечаний:
0% ±
Excel 2019
Доброго дня. Думаю без макроса никак не выйдет.
Ответить
Сообщение Доброго дня. Думаю без макроса никак не выйдет. Автор - DJ_Marker_MC Дата добавления - 28.01.2015 в 13:03
vitalife
Дата: Среда, 28.01.2015, 13:08 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Как создать такой макрос? Где можно почитать, подскажите, пожалуйста?
Как создать такой макрос? Где можно почитать, подскажите, пожалуйста? vitalife
Ответить
Сообщение Как создать такой макрос? Где можно почитать, подскажите, пожалуйста? Автор - vitalife Дата добавления - 28.01.2015 в 13:08
DJ_Marker_MC
Дата: Среда, 28.01.2015, 13:14 |
Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация:
213
±
Замечаний:
0% ±
Excel 2019
vitalife , стало интересно решил накидать на скорую руку. [vba]Код
Sub ttt() If Selection.Count <> 2 Then End For Each cell In Selection q = q + 1 If q = 1 Then a = cell aa = cell.Address Else b = cell bb = cell.Address End If Next Range(aa) = b Range(bb) = a End Sub
[/vba] Выделяете ДВА любых значения и нажимаете кнопку ОБМЕН
vitalife , стало интересно решил накидать на скорую руку. [vba]Код
Sub ttt() If Selection.Count <> 2 Then End For Each cell In Selection q = q + 1 If q = 1 Then a = cell aa = cell.Address Else b = cell bb = cell.Address End If Next Range(aa) = b Range(bb) = a End Sub
[/vba] Выделяете ДВА любых значения и нажимаете кнопку ОБМЕНDJ_Marker_MC
Ответить
Сообщение vitalife , стало интересно решил накидать на скорую руку. [vba]Код
Sub ttt() If Selection.Count <> 2 Then End For Each cell In Selection q = q + 1 If q = 1 Then a = cell aa = cell.Address Else b = cell bb = cell.Address End If Next Range(aa) = b Range(bb) = a End Sub
[/vba] Выделяете ДВА любых значения и нажимаете кнопку ОБМЕНАвтор - DJ_Marker_MC Дата добавления - 28.01.2015 в 13:14
Rioran
Дата: Среда, 28.01.2015, 13:40 |
Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация:
290
±
Замечаний:
0% ±
Excel 2013
DJ_Marker_MC , хорошее решение. Меня почему-то по чуть более сложному пути понесло =) Что-то я зациклился на массивах. [vba]Код
Sub Rio_Exch() 'Author: Roman "Rioran" Voronov 'Date: the 28-th of January, 2015 'Feedback: voronov_rv@mail.ru 'If you select two different cells - this code will swap their values. Dim ArrX Dim StrA As String Dim StrB As String Dim ValA As Variant Dim ValB As Variant If Selection.Cells.Count <> 2 Then Exit Sub If InStr(1, Selection.Address, ",") Then ArrX = Split(Selection.Address, ",") Else ArrX = Split(Selection.Address, ":") End If StrA = ArrX(0): StrB = ArrX(1) ValA = Range(StrA).Value ValB = Range(StrB).Value Range(StrA).Value = ValB Range(StrB).Value = ValA End Sub
[/vba]
DJ_Marker_MC , хорошее решение. Меня почему-то по чуть более сложному пути понесло =) Что-то я зациклился на массивах. [vba]Код
Sub Rio_Exch() 'Author: Roman "Rioran" Voronov 'Date: the 28-th of January, 2015 'Feedback: voronov_rv@mail.ru 'If you select two different cells - this code will swap their values. Dim ArrX Dim StrA As String Dim StrB As String Dim ValA As Variant Dim ValB As Variant If Selection.Cells.Count <> 2 Then Exit Sub If InStr(1, Selection.Address, ",") Then ArrX = Split(Selection.Address, ",") Else ArrX = Split(Selection.Address, ":") End If StrA = ArrX(0): StrB = ArrX(1) ValA = Range(StrA).Value ValB = Range(StrB).Value Range(StrA).Value = ValB Range(StrB).Value = ValA End Sub
[/vba]Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Ответить
Сообщение DJ_Marker_MC , хорошее решение. Меня почему-то по чуть более сложному пути понесло =) Что-то я зациклился на массивах. [vba]Код
Sub Rio_Exch() 'Author: Roman "Rioran" Voronov 'Date: the 28-th of January, 2015 'Feedback: voronov_rv@mail.ru 'If you select two different cells - this code will swap their values. Dim ArrX Dim StrA As String Dim StrB As String Dim ValA As Variant Dim ValB As Variant If Selection.Cells.Count <> 2 Then Exit Sub If InStr(1, Selection.Address, ",") Then ArrX = Split(Selection.Address, ",") Else ArrX = Split(Selection.Address, ":") End If StrA = ArrX(0): StrB = ArrX(1) ValA = Range(StrA).Value ValB = Range(StrB).Value Range(StrA).Value = ValB Range(StrB).Value = ValA End Sub
[/vba]Автор - Rioran Дата добавления - 28.01.2015 в 13:40
vitalife
Дата: Среда, 28.01.2015, 14:11 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Спасибо большое, DJ_Marker_MC! Получилось встроить ваш макрос!!!! Благодарю DJ_Marker_MC, Rioran
Спасибо большое, DJ_Marker_MC! Получилось встроить ваш макрос!!!! Благодарю DJ_Marker_MC, Rioran vitalife
Ответить
Сообщение Спасибо большое, DJ_Marker_MC! Получилось встроить ваш макрос!!!! Благодарю DJ_Marker_MC, Rioran Автор - vitalife Дата добавления - 28.01.2015 в 14:11
vitalife
Дата: Среда, 28.01.2015, 14:20 |
Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Только почему-то при закрытии и открытии макрос перестает работать - пропадает. Как его сохранить навсегда?
Только почему-то при закрытии и открытии макрос перестает работать - пропадает. Как его сохранить навсегда? vitalife
Ответить
Сообщение Только почему-то при закрытии и открытии макрос перестает работать - пропадает. Как его сохранить навсегда? Автор - vitalife Дата добавления - 28.01.2015 в 14:20
vitalife
Дата: Среда, 28.01.2015, 14:20 |
Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 57
Репутация:
0
±
Замечаний:
60% ±
Excel 2010
Только почему-то при закрытии и открытии Документа Excel макрос перестает работать - пропадает. Как его сохранить навсегда?
Только почему-то при закрытии и открытии Документа Excel макрос перестает работать - пропадает. Как его сохранить навсегда? vitalife
Сообщение отредактировал vitalife - Среда, 28.01.2015, 14:20
Ответить
Сообщение Только почему-то при закрытии и открытии Документа Excel макрос перестает работать - пропадает. Как его сохранить навсегда? Автор - vitalife Дата добавления - 28.01.2015 в 14:20
Rioran
Дата: Среда, 28.01.2015, 14:23 |
Сообщение № 9
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация:
290
±
Замечаний:
0% ±
Excel 2013
vitalife , загуглите "личная книга макросов" и "добавление макроса на панель быстрого доступа".
vitalife , загуглите "личная книга макросов" и "добавление макроса на панель быстрого доступа".Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Ответить
Сообщение vitalife , загуглите "личная книга макросов" и "добавление макроса на панель быстрого доступа".Автор - Rioran Дата добавления - 28.01.2015 в 14:23
vikttur
Дата: Среда, 28.01.2015, 14:44 |
Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Если ячейки рядом в строке: [vba]Код
Sub TransposValue() Dim vValue With Selection If .Count <> 2 Then End vValue = .Cells(1, 1).Value .Cells(1, 1).Value = .Cells(1, 2).Value .Cells(1, 2).Value = vValue End With End Sub
[/vba]
Если ячейки рядом в строке: [vba]Код
Sub TransposValue() Dim vValue With Selection If .Count <> 2 Then End vValue = .Cells(1, 1).Value .Cells(1, 1).Value = .Cells(1, 2).Value .Cells(1, 2).Value = vValue End With End Sub
[/vba] vikttur
Сообщение отредактировал vikttur - Среда, 28.01.2015, 14:44
Ответить
Сообщение Если ячейки рядом в строке: [vba]Код
Sub TransposValue() Dim vValue With Selection If .Count <> 2 Then End vValue = .Cells(1, 1).Value .Cells(1, 1).Value = .Cells(1, 2).Value .Cells(1, 2).Value = vValue End With End Sub
[/vba] Автор - vikttur Дата добавления - 28.01.2015 в 14:44
_Boroda_
Дата: Среда, 28.01.2015, 15:00 |
Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16901
Репутация:
6613
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Еще вариант. [vba]Код
Sub tt() If Selection.Count <> 2 Then Exit Sub ad_ = Selection.Address(0, 0) ad1_ = Mid(ad_, 1, WorksheetFunction.Search(",", ad_) - 1) ad2_ = Mid(ad_, WorksheetFunction.Search(",", ad_) + 1, 99) a_ = Range(ad1_) Range(ad1_) = Range(ad2_) Range(ad2_) = a_ End Sub
[/vba]
Еще вариант. [vba]Код
Sub tt() If Selection.Count <> 2 Then Exit Sub ad_ = Selection.Address(0, 0) ad1_ = Mid(ad_, 1, WorksheetFunction.Search(",", ad_) - 1) ad2_ = Mid(ad_, WorksheetFunction.Search(",", ad_) + 1, 99) a_ = Range(ad1_) Range(ad1_) = Range(ad2_) Range(ad2_) = a_ End Sub
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Еще вариант. [vba]Код
Sub tt() If Selection.Count <> 2 Then Exit Sub ad_ = Selection.Address(0, 0) ad1_ = Mid(ad_, 1, WorksheetFunction.Search(",", ad_) - 1) ad2_ = Mid(ad_, WorksheetFunction.Search(",", ad_) + 1, 99) a_ = Range(ad1_) Range(ad1_) = Range(ad2_) Range(ad2_) = a_ End Sub
[/vba] Автор - _Boroda_ Дата добавления - 28.01.2015 в 15:00