Во время работы в Эксель нередко возникает необходимость в изменении порядка ячеек, например, требуется поменять местами некоторые из них. Как это сделать разными способами, разберем в данной статье.
Содержание
- Процедура перемещения ячеек
- Метод 1: копирование
- Метод 2: перетаскивание
- Метод 3: использование макросов
- Заключение
Процедура перемещения ячеек
Отдельной функции, позволяющей выполнить данную процедуру в программе Excel нет. А при использовании стандартных инструментов неизбежно будет происходить сдвиг остальных ячеек, которые нужно потом вернуть на место, что в результате приведет к дополнительным действиям. Однако методы для выполнения поставленной задачи есть, и о них пойдет речь ниже.
Метод 1: копирование
Это, пожалуй, самый простой способ, который предполагает копирование элементов в другое место с заменой начальных данных. Порядок действий следующий:
- Встаем в первую ячейку (выделяем ее), которую планируем переместить. Находясь в главной вкладке программы нажимаем на кнопку “Копировать” (группа инструментов “Буфер обмена”). Также можно просто нажать комбинацию клавиш Ctrl+C.
- Переходим в любую свободную ячейку на листе и нажимаем кнопку “Вставить” в той же вкладке и группе инструментов. Или можно снова воспользоваться горячими клавишами – Ctrl+V.
- Теперь выделяем вторую ячейку, с которой хотим поменять местами первую, и также копируем ее.
- Встаем в первую ячейку и жмем кнопку “Вставить” (или Ctrl+V).
- Теперь выделяем ячейку, в которую было скопировано значение из первой ячейки и копируем ее.
- Переходим во вторую ячейку, куда нужно вставить данные, и нажимаем соответствующую кнопку на ленте.
- Выбранные элементы успешно поменяны местами. Ячейка, в которой временно размещались скопированные данные, больше не нужна. Щелкаем по ней правой кнопкой мыши и в открывшемся меню выбираем команду “Удалить”.
- В зависимости от того, есть ли рядом с данной ячейкой заполненные элементы справа/снизу или нет, выбираем соответствующий вариант удаления и жмем кнопку OK.
- Вот и все, что нужно было сделать для того, чтобы поменять ячейки местами.
Несмотря на то, что для реализации данного метода нужно выполнить немало дополнительных действий, все же, им пользуется наибольшее количество пользователей.
Метод 2: перетаскивание
Данный метод также применяется для того, чтобы поменять местами ячейки, однако, в этом случае будет происходить сдвиг ячеек. Итак, выполняем следующие действия:
- Выбираем ячейку, которую планируем переместить в новое место. Наводим курсор мыши на ее границу, и как только он изменит вид на привычный указатель (с 4 стрелками в разные стороны на конце), нажав и не отпуская клавишу Shift, выполняем перенос ячейки в новое место с помощью зажатой левой кнопки мыши.
- Чаще всего, этот метод используется для того, чтобы поменять местами соседние ячейки, так как сдвиг элементов в данном случае не нарушит структуру таблицы.
- Если мы решим переместить ячейку через несколько других, это повлечет за собой изменение расположения всех остальных элементов.
- После этого придется восстанавливать порядок.
Метод 3: использование макросов
Мы упоминали в начале статьи, что в Excel, увы, нет специального инструмента, позволяющего оперативно “перекинуть” местами ячейки (за исключением метода выше, который эффективен только для смежных элементов). Однако сделать это можно с помощью макросов:
- Для начала нужно убедиться в том, что в приложении активирован так называемый “режим разработчика” (по умолчанию выключен). Для этого:
- Переключаемся во вкладку “Разработчик”, где жмем по значку “Visual Basic” (группа инструментов “Код”).
- В редакторе, нажав на кнопку “View Code”, вставляем в появившемся окне код ниже:
Sub ПеремещениеЯчеек()
Dim ra As Range: Set ra = Selection
msg1 = "Произведите выделение ДВУХ диапазонов идентичного размера"
msg2 = "Произведите выделение двух диапазонов ИДЕНТИЧНОГО размера"
If ra.Areas.Count <> 2 Then MsgBox msg1, vbCritical, "Проблема": Exit Sub
If ra.Areas(1).Count <> ra.Areas(2).Count Then MsgBox msg2, vbCritical, "Проблема": Exit Sub
Application.ScreenUpdating = False
arr2 = ra.Areas(2).Value
ra.Areas(2).Value = ra.Areas(1).Value
ra.Areas(1).Value = arr2
End Sub - Закрываем окно редактора, щелкнув привычную кнопку в виде крестика в верхнем правом углу.
- Зажав клавишу Ctrl на клавиатуре выделяем две ячейки или две области с одинаковым количество элементов, которые планируем поменять местами. Затем нажимаем кнопку “Макросы” (вкладка “Разработчик”, группа “Код”).
- Появится окно, в котором мы видим ранее созданный макрос. Выбираем его и щелкаем “Выполнить”.
- В результате работы макрос поменяет местами содержимое выделенных ячеек.
Примечание: при закрытии документа макрос будет удален, поэтому, в следующий раз его нужно будет создавать заново (при необходимости). Но, если вы предполагаете, что в дальнейшем придется часто выполнять подобные операции, файл можно сохранить с поддержкой макросов.
Заключение
Работа с ячейками в таблице Эксель предполагает не только внесение, редактирование или удаление данных. Иногда требуется перенести или поменять местами ячейки, содержащие определенные значения. Несмотря на то, что в функционале Эксель нет отдельного инструмента для решения данной задачи, выполнить ее можно путем копирования и последующей вставки значений, переноса ячейки или использования макросов.
Содержание
- Перемещение ячеек
- Способ 1: перемещение с помощью копирования
- Способ 2: перетаскивание
- Способ 3: применение макросов
- Вопросы и ответы
Потребность поменять ячейки местами друг с другом при работе в таблице Microsoft Excel случается довольно редко. Тем не менее, такие ситуации бывают и их нужно решать. Давайте выясним, какими способами можно поменять ячейки местами в Экселе.
Перемещение ячеек
К сожалению, в стандартном наборе инструментов нет такой функции, которая бы без дополнительных действий или без сдвига диапазона, могла бы менять местами две ячейки. Но, в то же время, хотя данная процедура перемещения и не так проста, как хотелось бы, её все-таки можно устроить, причем несколькими способами.
Способ 1: перемещение с помощью копирования
Первый вариант решения проблемы предусматривает банальное копирование данных в отдельную область с последующей заменой. Давайте разберемся, как это делается.
- Выделяем ячейку, которую следует переместить. Жмем на кнопку «Копировать». Она размещена на ленте во вкладке «Главная» в группе настроек «Буфер обмена».
- Выделяем любой другой пустой элемент на листе. Жмем на кнопку «Вставить». Она находится в том же блоке инструментов на ленте, что и кнопка «Копировать», но в отличие от неё имеет гораздо более заметный вид из-за своих размеров.
- Далее переходим ко второй ячейке, данные которой нужно переместить на место первой. Выделяем её и опять жмем на кнопку «Копировать».
- Выделяем курсором первую ячейку с данными и жмем на кнопку «Вставить» на ленте.
- Одно значение мы переместили, куда нам нужно. Теперь возвращаемся к тому значению, которое мы вставили в пустую ячейку. Выделяем его и жмем на кнопку «Копировать».
- Выделяем вторую ячейку, в которую нужно переместить данные. Жмем на кнопку «Вставить» на ленте.
- Итак, нужные данные мы поменяли местами. Теперь следует удалить содержимое транзитной ячейки. Выделяем её и щелкаем правой кнопкой мыши. В контекстном меню, которое активировалось после этих действий, переходим по пункту «Очистить содержимое».
Теперь транзитные данные удалены, а задача по перемещению ячеек полностью выполнена.
Конечно, данный способ не совсем удобен и требует множества дополнительных действий. Тем не менее, именно он применим большинством пользователей.
Способ 2: перетаскивание
Ещё одним способом, с помощью которого существует возможность поменять ячейки местами, можно назвать простое перетаскивание. Правда при использовании этого варианта произойдет сдвиг ячеек.
Выделяем ячейку, которую нужно переместить в другое место. Устанавливаем курсор на её границу. При этом он должен преобразоваться в стрелку, на конце которой находятся указатели, направленные в четыре стороны. Зажимаем клавишу Shift на клавиатуре и перетаскиваем на то место куда хотим.
Как правило, это должна быть смежная ячейка, так как при переносе таким способом происходит сдвиг всего диапазона.
Поэтому перемещение через несколько ячеек чаще всего происходит некорректно в контексте конкретной таблицы и применяется довольно редко. Но сама потребность поменять содержимое далеко стоящих друг от друга областей не исчезает, а требует других решений.
Способ 3: применение макросов
Как уже было сказано выше, не существует быстрого и корректно способа в Эксель без копирования в транзитный диапазон поменять две ячейки между собой местами, если находятся они не в смежных областях. Но этого можно добиться за счет применения макросов или сторонних надстроек. Об использовании одного такого специального макроса мы и поговорим ниже.
- Прежде всего, нужно включить у себя в программе режим работы с макросами и панель разработчика, если вы их до сих пор не активировали, так как по умолчанию они отключены.
- Далее переходим во вкладку «Разработчик». Выполняем щелчок по кнопке «Visual Basic», которая размещена на ленте в блоке инструментов «Код».
- Выполняется запуск редактора. В него нужно вставить следующий код:
Sub ПеремещениеЯчеек()
Dim ra As Range: Set ra = Selection
msg1 = "Произведите выделение ДВУХ диапазонов идентичного размера"
msg2 = "Произведите выделение двух диапазонов ИДЕНТИЧНОГО размера"
If ra.Areas.Count 2 Then MsgBox msg1, vbCritical, "Проблема": Exit Sub
If ra.Areas(1).Count ra.Areas(2).Count Then MsgBox msg2, vbCritical, "Проблема": Exit Sub
Application.ScreenUpdating = False
arr2 = ra.Areas(2).Value
ra.Areas(2).Value = ra.Areas(1).Value
ra.Areas(1).Value = arr2
End SubПосле того, как код вставлен, закрываем окно редактора, нажав на стандартизированную кнопку закрытия в его верхнем правом углу. Таким образом код будет записан в память книги и его алгоритм можно будет воспроизвести для выполнения нужных нам операций.
- Выделяем две ячейки или два диапазона равных размеров, которые хотим поменять местами. Для этого кликаем по первому элементу (диапазону) левой кнопкой мыши. Затем зажимаем кнопку Ctrl на клавиатуре и также кликаем левой кнопкой мышки по второй ячейке (диапазону).
- Чтобы запустить макрос, жмем на кнопку «Макросы», размещенную на ленте во вкладке «Разработчик» в группе инструментов «Код».
- Открывается окно выбора макроса. Отмечаем нужный элемент и жмем на кнопку «Выполнить».
- После этого действия макрос автоматически меняет содержимое выделенных ячеек местами.
Важно отметить, что при закрытии файла макрос автоматически удаляется, так что в следующий раз его придется записывать снова. Чтобы не делать эту работу каждый раз для конкретной книги, если вы планируете в ней постоянно проводить подобные перемещения, то следует сохранить файл как Книгу Excel с поддержкой макросов (xlsm).
Урок: Как создать макрос в Excel
Как видим, в Excel существует несколько способов перемещения ячеек относительно друг друга. Это можно сделать и стандартными инструментами программы, но данные варианты довольно неудобны и занимают много времени. К счастью, существуют макросы и надстройки сторонних разработчиков, которые позволяют решить поставленную задачу максимально легко и быстро. Так что для пользователей, которым приходится постоянно применять подобные перемещения, именно последний вариант будет самым оптимальным.
Еще статьи по данной теме:
Помогла ли Вам статья?
While working with MS Excel , sometimes you may need to delete values in strings or change them. You can automate that by using the powerful Replace() which is available in Excel VBA (Visual Basic for Applications). Today, we walk you through the series of steps to understand and master the Replace() function. The prerequisites for this intermediate course are the basic knowledge of Excel (here’s a course that can give you an introduction to Excel 2o13), strings and preliminary understanding of Excel VBA. If not, we recommend that you go through this beginner’s course on Excel VBA and macros. For a quick refresher, you can do a quick read through of our VBA tutorial.
Excel VBA Replace() is a simple yet very useful string function. As the name suggests, Replace() is used to replace a set of characters in a string with a new set of characters. The basic syntax of a VBA Replace function looks like this:
Replace(Source_string, Old_string, Replacement_string, [start, [count, [compare]]] )
Let’s go through each parameter to understand them better.
- Source_string: This is the complete source string, of which you want some characters to be replaced.
- Old_string: It’s the string which is to be replaced, ie the subset of source_string that you want to replace
- Replacement_string: Is the string or a set of characters with which you want “Old_string” is to be replaced.
- Start: Stands for the numerical position in the “Source_string” from which the search should start. This is an optional parameter. If this parameter is omitted, then by default the search begins at position 1.
- Count: This parameter stands for the frequency of occurrences of Old_string to be replaced. Like “start”, it’s an optional parameter. If this argument is omitted, then each occurrence of “Old_string” in the “Source_string” will be replaced.
- Compare: This is also an optional parameter. It represents the type of comparison algorithm to be used while the Replace Function searches for the occurrences of “Old_string” in the “Source_string.” Here are your options:
- vbBinaryCompare is the parameter value for binary comparison.
- vbTextCompare is the argument for textual comparison.
- Finally, the parameter value vbDatabaseCompare does a comparison based on information in your database.
Now that we’re familiar with the syntax of Replace function, lets move on to a few simple practical examples.
Examples
Replace (“Thank You", "You", "Everybody")
This example will return, “Thank Everybody”.
Replace ("Software Program", "Unique","code")
Guess what this will return? The code will return “Software Program.” The reason is we have asked the Replace function to replace “Unique.” However, you can see that “Unique” text string is not present inside the source string. So, Replace will leave the source string unchanged.
Replace ("Animal", "a", "f",2)
This code will return, “Animfl.” The reason is in the Replace function code, the search for character “a” starts from the second position. Wherever, “a” is found, it is replaced with “f”.
Replace ("Animal", "a", "f",1,1)
Here the Replace() will return “fnimal”. The reason being we have instructed the VBA Replace statement to replace only one occurrence of “a” with “f”.
We suggest you work out these examples and learn a bit more about VBA macros (you can use this VBA course) before moving on to more complex programs using Replace function. Here on, we will use the Visual Basic Editor to write the code. We assume that you know how to save, compile and run programs on this editor. You can always look up our course on Excel VBA and Macros here.
How to Remove Space from a String
Sub removeSpace() Dim stringSpace As String stringSpace = " this string contains spaces " stringSpace = Replace(stringSpace, " ", "") End Sub
Here we have declared stringSpace to be a variable of type string. It is initialized to a string which contains spaces. Replace() has the ‘stringSpace’ to the be source string. Every occurrence of space in the source string is removed using VBA Replace statement. Finally, stringSpace contains “thisstringcontainsspaces” which is the end result.
How to Replace a String within Inverted Comma
Sub replaceQuotedString() Dim y, longString, resultString1 As String y = Chr(34) & "abc" & Chr(34) longString = "Let's replace this string: " &y resultString1 = Replace(longString, y, "abc") End Sub
Here we declare y, longString, resultString1 as variables of data type string. Chr() converts the numerical values to string data type. In other words, it introduces the quotation marks to the numerical values. And(&) operator concatenates strings. Value of “y” is “34abc34.” The “longString” value is “Let’s replace this string: 34abc34″. In the Replace() value of source string is the “longString.” That is “34abc34” is replaced by “abc”. The resultstring1 now stores the value “Let’s replace this string: abc”
How to Remove Square Brackets from a String using Excel VBA
Sub removeSquareBrackets1() Dim trialStr As String trialStr = "[brackets have to be removed]" trialStr = Replace(trialStr, "[", "") trialStr = Replace(trialStr, "]", "") MsgBox (trialStr) End Sub
In this program, we’ve declared trialStr as a variable of type string. It’s assigned the value”[brackets have to be removed].” The first occurrence of the replace function removes the left square bracket from trialStr. The variable now contains “brackets have to be removed].” In the second occurrence of the Replace function, the right square bracket is removed. Finally the value of trialStr is “brackets have to be removed.” Note that there are no square brackets in trialStr now. And the MsgBox() displays the result.
How to Edit a Url Using Replace()
Enter this formula into any cell in your current Excel sheet.
=HYPERLINK("http://www.microsoft.com", "Microsoft Headquarters")
This creates a hyperlinked URL in the active cell of your worksheet. In the VBA editor, write the following code
Sub editURL1() Dim URL1, NewURL URL1 = ActiveCell.Formula NewURL = Replace(URL1, "Microsoft Headquarters", "World Office") ActiveCell.Formula = NewURL End Sub
In this program, we’ve declared URL1 and NewURL as variables. URL1 is initialized to the value in the selected cell. Replace () searches for occurrence of “Microsoft Headquarters” in the URL and replaces it with “World Office.” The selected cell is assigned the value of NewURL.
Programming using Excel VBA is interesting and gives you exposure to powerful functionality and features. Mastering it is important to efficiently and effectively use Excel. Once you’ve tried these examples for yourself, do share your learning and experience with us. Once you’re ready to take the next step, hop over to this Ultimate VBA course, to check out some advanced VBA concepts.
semkaru Пользователь Сообщений: 20 |
уважаемые знатоки, здравствуйте. подскажите, пожалуйста, с написанием макроса по замене данных, а именно: есть данные, например в колонке A. необходимо произвести замену по условиям, например, где в ячейке имеется в ЛЮБОМ месте слово book, например, заменить ПОЛНОСТЬЮ данную ячейку на значение table. например в ячейке есть слово 7823632BOOK43545 и заменить просто на table. спасибо. |
Catboyun Пользователь Сообщений: 1631 |
вариант без макросов: Прикрепленные файлы
|
semkaru Пользователь Сообщений: 20 |
спасибо за ответ, но это я знаю у меня около 5000 строк с разными условиями, и замена нужна где-то 3 раза в день, т.е. хочется тяпнуть по кнопоче макроса и все, а не в ручную |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
#4 10.09.2016 21:25:52
А как макрос узнает про эти «разные» условия? |
||
semkaru Пользователь Сообщений: 20 |
ну или не макрос. типа if A1:A5000 *book* then table, if B1:B5000 *qwert* then kuku тут может даже и не макрос мне нужен. может просто формула. а условий штук 5 будет всего, которые руками можно прописать. |
Catboyun Пользователь Сообщений: 1631 |
#6 10.09.2016 21:36:14 сооб.№2 записать рекордером
и так 5 строк вставить, поменять значения What и Replacement |
||
semkaru Пользователь Сообщений: 20 |
#7 10.09.2016 21:46:10
ошибка Прикрепленные файлы
|
||
Catboyun Пользователь Сообщений: 1631 |
у меня все нориально Прикрепленные файлы
|
semkaru Пользователь Сообщений: 20 |
спасибо. работает. и ваш пример, и я допилил. но есть еще вопрос, при исполнении макроса при нажатии ALT-F8 можно указать где исполнить макрос, т.е. открыты два файла, kkk и еще дугой. из kkk жму ALT-F8 выбираю «Находится в» «Все открытые книги, но меняется только в kkk «
|
Catboyun Пользователь Сообщений: 1631 |
Так Вам надо макрос записать в Личную книгу макросов Прикрепленные файлы
|
semkaru Пользователь Сообщений: 20 |
огромное спасибо, а можете еще подсказать формулу для макроса, типа после столбца B вставляем автоматически по макросу ПУСТОЙ столбец, и типа добавляем что-то наподобие в столбец C: =B+123, но чтоб в C были заполнены строки только то, где есть значения в B, т.е. если в И значения до 2300 строки, то и в C чтрб значение подставлялось до 2300 строки спасибо |
Catboyun Пользователь Сообщений: 1631 |
#12 11.09.2016 07:52:15 semkaru
, это Вам нужно новую тему создавать |
Быстрая замена значений по условию в Excel
Добрый день, уважаемые читатели блога! Сегодня поговорим о быстрой замене значений в таблице Excel. Зачем нам это нужно, когда есть формулы ЕСЛИ и условное форматирование? Ответ прост — для экономии времени. Но ведь можно ещё быстрее. Ниже будет пример с небольшой таблицей, где хочется сразу выделить или поместить нужное значение.
Есть две таблицы, одна оригинал, вторая для изменений. Все ученики кто получил 4 и выше имеют результат «Прошёл», у кого 3 и ниже — «Не прошёл».
Если будем использовать условное форматирование, придётся писать формулу каждый раз и если таблица очень большая и сразу хочется увидеть результат — лучше воспользоваться макросом.
Сразу оговорюсь в макросе будет прописан диапазон для замены, так что если таблица будет больше, нужно просто изменить диапазон.
Как обычно:
- вкладка «Разработчик», блок кнопок «Код»;
- жмём «Visual Basic»;
- добавляем новый модуль Insert -> Module.
Вставляем следующий код.
Sub Result()
Dim cell As Range
‘ Проверка каждой ячейки диапазона на прохождение
For Each cell In Range(«I2:L10»).Cells
If cell.Value <= 3 Then
cell.Value = «Не прошёл»
ElseIf cell.Value >= 4 Then
cell.Value = «Прошёл»
End If
Next
End Sub
В этом случае используется связка из команд IF и ElseIf, что позволяет нам несколько расширить понимание формулы ЕСЛИ. Напомню, что макрос будет применён только к ячейкам из диапазона I2:L10!
Запускаем выбор макросов с помощью сочетания клавиш Alt+F8 и нажимаем кнопку «Выполнить».
Получаем результат. Во второй таблице я сразу вижу кто из учеников прошёл дальше, а кто нет. Ну и кому что необходимо подтянуть:)
Таким образом решается некая ограниченность формулы ЕСЛИ, ведь условия в макросе можно продолжить и подобрать свои, всего лишь изменив значения.
Поменять местами данные |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Замена подстроки, содержащейся в текстовых значениях ячеек указанного диапазона, другой подстрокой с помощью метода Range.Replace из кода VBA Excel.
Range.Replace – это метод, который находит по шаблону подстроку в содержимом ячеек указанного диапазона, заменяет ее на другую подстроку и возвращает значение типа Boolean.
Метод имеет некоторые особенности, которые заключаются в следующем:
- при присвоении булева значения, возвращаемого методом Range.Replace, переменной, необходимо список параметров (аргументов) метода заключать в круглые скобки;
- если метод используется без присвоения возвращаемого значения переменной, параметры должны быть указаны без заключения их в круглые скобки.
Синтаксис и параметры метода
Синтаксис
Синтаксис при замене подстроки и присвоении переменной возвращаемого значения типа Boolean:
variable = expression.Replace(What, Replacement, [LookAt], [SearchOrder], [MatchCase], [MatchByte], [SearchFormat], [ReplaceFormat])
Синтаксис при замене подстроки без присвоения переменной возвращаемого значения:
expression.Replace What, Replacement, [LookAt], [SearchOrder], [MatchCase], [MatchByte], [SearchFormat], [ReplaceFormat]
- variable – переменная (тип данных — Boolean);
- expression – выражение, возвращающее объект Range.
Параметры
Параметр | Описание |
---|---|
What | Искомая подстрока или шаблон*, по которому ищется подстрока в диапазоне ячеек. Обязательный параметр. |
Replacement | Подстрока, заменяющая искомую подстроку. Обязательный параметр. |
LookAt | Указывает правило поиска по полному или частичному вхождению искомой подстроки в текст ячейки: 1 (xlWhole) – поиск полного вхождения искомого текста; 2 (xlPart) – поиск частичного вхождения искомого текста. Необязательный параметр. |
SearchOrder | Задает построчный или постолбцовый поиск: 1 (xlByRows) – построчный поиск; 2 (xlByColumns) – постолбцовый поиск. Необязательный параметр. |
MatchCase | Поиск с учетом или без учета регистра: 0 (False) – поиск без учета регистра; 1 (True) – поиск с учетом регистра. Необязательный параметр. |
MatchByte | Способы сравнения двухбайтовых символов: 0 (False) – двухбайтовые символы сопоставляются с однобайтовыми эквивалентами; 1 (True) – двухбайтовые символы сопоставляются только с двухбайтовым символами. Необязательный параметр. |
SearchFormat | Формат поиска. Необязательный параметр. |
ReplaceFormat | Формат замены. Необязательный параметр. |
* Смотрите знаки подстановки для шаблонов, которые можно использовать в параметре What.
Работа метода в VBA Excel
Исходная таблица для всех примеров:
Пример 1
Примеры записи строк кода с методом Range.Replace и поиском по частичному совпадению подстроки с содержимым ячейки:
Sub Primer1() ‘Запись 1: Range(«A1:C6»).Replace «Лиса», «Рысь», 2 ‘Запись 2: Range(«A1:C6»).Replace What:=«Лиса», Replacement:=«Рысь», LookAt:=2 ‘Запись 3: If Range(«A1:C6»).Replace(«Лиса», «Рысь», 2) Then End If ‘Запись 4: Dim a a = Range(«A1:C6»).Replace(«Лиса», «Рысь», 2) End Sub |
Результат выполнения любого из вариантов кода примера 1:
Пример 2
Поиск по шаблону с использованием знаков подстановки и по полному совпадению подстроки с содержимым ячейки:
Sub Primer2() Range(«A1:C6»).Replace «Ли??», «Рысь», 1 End Sub |
Обратите внимание, что слово «Лиса» заменено словом «Рысь» не во всех ячейках. Это произошло из-за того, что мы использовали параметр LookAt:=1 – поиск полного вхождения искомого текста в содержимое ячейки.
В ст В так сказать основной признак для сортировки данных за месяц в других столбцах
Предполагается что он будет таким на протяжении всего месяца
Но вдруг какое-то событие — и на определенной неделе признак меняется и становится как в ст D
Прошел месяц
Начался новый
Старый файл сохраняется в архив как есть
На новым период копированием создается новый
И тут надо вернуть значения ст D в соответствие со ст В Т.е. снова предположить что признак от недели к неделе не будет меняться
Добавлено через 1 минуту
Столбцы сопоставлять по строкам
B1 — D1
Добавлено через 4 минуты
Причем предполагается что периодов в месяце 5
Основное значение задается перед первым периодом и в каждом периоде может меняться
Т е приводить в соответствие нужно 4 стобца
Добавлено через 8 минут
Т.е. хотелось бы выбирать столбцы в которых производить замену
Да еще и для каждого листа книги разные столбцы могут быть
(по высоте в том числе)
Добавлено через 12 минут
И еще!!! Изначально во всех «неглавных» столбцах первоначально стоит формула простой прямой ссылки на главный
И с идеале эту же формулу ссылки вернуть нужно после выполнения макроса