Это может быть сделано в Microsoft Excel с помощью пользовательского макроса («... фрагменты кода, хранящиеся в книге, которые могут автоматизировать повторяющиеся задачи и быстро привести ваши данные в порядок».) Я попытаюсь решить проблему вниз, предоставьте полезное решение и после некоторой уборки, инструкции о том, как его использовать.
Эта проблема
Давайте разберем проблему, используя произвольные имена Sheet
и Column
:
- Мы дали два рабочих листов,
Sheet1
и Sheet2
- В
Sheet1
содержатся значения, хранящиеся в Column A
- Содержится в
Sheet2
у нас есть Column B
который может содержать или не содержать значения
- Мы хотим, чтобы все изменения, внесенные в
Sheet1
:Column A
автоматически копировали себя в Sheet2
:Column B
Решение
Создав макрос, который запускается Worksheet_Change
мы можем сделать так, чтобы макрос автоматически копировал значения, я объясню, как это работает потом:
' I have included some brief comments to help understand what is going on
' Automatically triggers when a change to a cell(s) occurs on the Sheet
Private Sub Worksheet_Change(ByVal Target As Range)
' Target is an object, it also tells us where the change occurred
' Did the change occur in column A (A = 1, B = 2, etc)?
If (Target.Column = 1) Then
' Get the ROW of where the change occurred
Dim row as Integer = Target.Row
' Update Sheet2 using our row, but use column B
Sheet2.Cells(row, "B") = Target.Value
End If
End Sub
домоводство
Пожалуйста, помните:
- Макросы, подобные написанному выше, обычно работают только в Microsoft Excel.
- Макросы часто являются средством передачи компьютерных вирусов, и следует проявлять осторожность, чтобы вы не включали и / или не запускали макросы из ненадежных источников - при этом, если вы решите использовать любую из предоставленных мной инструкций, вы сделаете это самостоятельно. риск
- Макросы находятся внутри рабочей книги (электронной таблицы), в которую вы их записываете, и сохраняются каждый раз при обычном сохранении; тем не мение:
- В современных версиях Excel вам может потребоваться сохранить рабочую книгу как файл другого типа (Excel Macro-Enabled Workbook .xlsm) для хранения вышеуказанного
- Если вы не подписали макрос макросом (выходящим за рамки данного руководства), вам может потребоваться запускать макрос при каждой загрузке книги.
Как
Чтобы начать добавление этого макроса в рабочую книгу, необходимо загрузить сначала открытую электронную таблицу, которую вы хотите использовать, а затем запустить Microsoft Visual Basic для приложений (далее VBA) с помощью клавиш Alt + F11
.
(В этот момент я бы развернул окно VBA во избежание путаницы и возможных отвлекающих факторов)
С активным окном VBA вы увидите слева небольшое внутреннее окно с надписью
Project - VBAProject
Это обычно содержит иерархию проекта, и именно здесь мы можем добавить макросы в нашу книгу. Мы хотим добавить наш макрос - Sheet1 (Sheet1)
.
Sheet1 (Sheet1)
- это object
именем Sheet1
который является программным представлением рабочего листа. Вы можете увидеть имя рабочего листа, которое вы обычно редактируете в Excel, в скобках, в данном случае оно также называется Sheet1.
Чтобы добавить макрос в Sheet1
вы можете либо right-click
а затем щелкнуть « View Code
либо просто дважды щелкнуть его, чтобы открыть его в окне « Code
.
Отсюда вы можете скопировать и вставить мое решение, чтобы начать работу.
Если вы хотите написать макросы самостоятельно, я бы порекомендовал вам перейти по ссылке на первой странице, а также прочитать Введение в пользовательские макросы в Excel.
С уважением