Копирование данных без выхода из текущей выбранной ячейки (Microsoft Excel)
Генри хотел бы скопировать данные, содержащиеся в исходной ячейке, в целевую ячейку, не покидая текущей позиции на листе.
Другими словами, он хотел бы скопировать из ячейки A1 в ячейку AE459, не покидая своего текущего положения в V104. Он задается вопросом, возможно ли такое редактирование.
Конечно, очевидный подход к этому — просто поместить формулу = A1 в ячейку AE459. Затем Excel позаботится о том, чтобы две ячейки были равны. Вы также можете открыть второе окно на листе и позаботиться о копировании в этом окне; ячейка, выбранная в исходном окне (ячейка V104), останется без изменений.
Однако, если вы действительно хотите выполнить операцию «копирования», не открывая второе окно, вам придется прибегнуть к макросу.
Копировать из одной ячейки в другую внутри макроса довольно просто. Например, в следующем примере будет скопировано содержимое ячейки A1 в AE459, не затрагивая ту ячейку, которую вы выбрали в данный момент:
Sub CopyCell1() ' Copy the cell value to destination cell Range("AE459") = Range("A1") End Sub
Если вы хотите скопировать формулу, которая находится в ячейке A1, в место назначения, вам необходимо изменить способ выполнения копирования. В частности, вам необходимо использовать метод Copy, используя диапазон назначения в качестве параметра.
Sub CopyCell2() ' Copy the relative formula to destination Range("A1").Copy Range("AE459") End Sub
Конечно, недостатком этих макросов является то, что они статичны — они копируют только из ячейки A1 в ячейку AE459. Если ваши потребности в копировании могут различаться, вы можете рассмотреть возможность выполнения задачи в окне непосредственного выполнения редактора VB. Просто откройте редактор и введите одну строку из соответствующего макроса в окно. Затем копирование завершено, и вы можете закрыть редактор, не затрагивая выбранную вами ячейку.
Другой способ обеспечить некоторую гибкость источника и назначения для макроса — заставить его (макрос) запрашивать у пользователя источник и назначение. Следующий макрос использует этот подход.
Sub CopyCell3() Dim SrceCell As String Dim DestCell As String SrceCell = InputBox("Copy From Cell ...") DestCell = InputBox("Copy To Cell ...") Range(DestCell) = Range(SrceCell) End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9949) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.