2015-01-28 3 views
0

Я пытаюсь выяснить, как ссылаться на ячейки ALL Sheet1, поэтому внесенные изменения будут отражены на ячейках Sheet2.Как сделать ссылку для ВСЕХ ячеек?

Теперь у меня есть большие данные в Sheet1, которые я бы хотел скопировать на Sheet2. Позже мне пришлось бы исправлять данные на Sheet1, поэтому это должно быть отражено на Sheet2. Поскольку я еще не знаю, сколько ячеек мне нужно заполнить, я бы хотел ссылаться на ВСЕ. В принципе, Sheet2 должен зеркалировать Sheet1 с возможностью добавления дополнительных данных на Sheet2, которые не будут отображаться в Sheet1. Сортировка «одностороннее зеркало».

Я думаю, это не так сложно, и кто-то может привести пример или объяснение.

Благодаря

ответ

0

Для настройки зеркало всех используемых клеток в Лист1 на Sheet2 использования этого:

Sub AllTheCellsLinked() 
    Dim r As Range 
    Set r = Sheets("Sheet1").UsedRange.Cells 
    ady = r(1).Address 
    Sheets("Sheet2").Select 
    Range(ady).Select 
    r.Copy 
    ActiveSheet.Paste Link:=True 
End Sub 

Это установит ссылки на все используемые клетки.

EDIT

Если добавить строки или столбцы в Лист1, просто повторно запустить макрос.

0

Можно было бы сделать то, что вы хотите использовать динамический именованные диапазоны. В принципе, идея заключается в создании именованного диапазона, который определяется с помощью формулы OFFSET(). Таким образом, всякий раз, когда новые данные добавляются вне диапазона, именованный диапазон будет автоматически изменен для включения новых данных.

Here is one example of how to do this.

0

Вы можете использовать событие workheet_Change. Щелкните правой кнопкой на вкладке листа и выберите Просмотреть код Right Click Sheet Tab

Скопируйте и вставьте этот код там.

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim r As Integer 
    Dim c As Integer 

    r = Target.Row 
    c = Target.Column 

    Sheets("Sheet3").Cells(r, c) = Target 


End Sub 

Теперь все, что вы меняете на Лист1 изменится на Лист3 с в причине (Copy и Paste не будет работать для этого). Код идет в оригинальном листе. Измените имя листа, чтобы он изменился по мере необходимости.

+0

Он не отражает уже существующие данные в Sheet1 to Sheet2. Тем не менее, это решение лучше всего. Не могли бы вы обновить ответ, чтобы все уже существующие данные были отражены? Или какие шаги я должен сделать? –

+0

Не могли бы вы скопировать исходный лист перед началом использования кода. – Davesexcel

+0

Я сделал это. Я скопировал исходный лист после того, как применил код и не вижу никаких видимых изменений на Sheet2. Однако, если я дважды нажимаю на любую ячейку в Sheet1, только тогда данные отражаются в Sheet2 (но только текст, любые цвета). Я не могу дважды щелкнуть по каждой ячейке, потому что для многих из них. –

Смежные вопросы