Потребуется ли мне использовать VBA, если я хочу «скопировать / вставить» данные в книгу 2 после ввода в книгу 1? - PullRequest
0 голосов
/ 03 мая 2018

Я начал создавать пару рабочих книг, с которыми я хотел бы общаться друг с другом. Моя цель - взять записи из столбца 1 @ полночь, 6:00, полдень, 18:00 и 23:00 в рабочей книге 1 и «скопировать / вставить» их в строку 1 с такими же метками в рабочей книге 2. Мой главный вопрос: нужен ли мне VBA для этого? Мои исследования заставляют меня верить, что я делаю. Однако я знаю, что если я делаю это между электронными таблицами в одной и той же книге, я этого не делаю. Я просто использую код, такой как = 'Sht1'! A1, в электронной таблице 2, и он будет копировать и вставлять эту запись из электронной таблицы 1, так есть ли аналогичный способ сделать это с книгами? Спасибо за любой вклад!

1 Ответ

0 голосов
/ 04 мая 2018

Я понял это. Функция INDEX была правильной, по крайней мере, в этом случае. Правильная формула была не за горами, потому что у меня перепутались строки и столбцы, поэтому ответ был:

= ИНДЕКС ('[май 2018.xlsm] 1-е'! $ A $ 13: $ D13,1,3)

Чтобы сломать это для людей, которые не хотят использовать VBA и бороться с кодированием, как я:)

INDEX () - моя функция

'[Май 2018.xlsm] 1-й'! это название книги и листа, на которые я хочу сослаться и! означает, что в книге включена поддержка макросов

$ 13 $ - начало моего диапазона (A, 13)

$ D $ 13 - это конец моего диапазона (D, 13)

Таким образом, мой диапазон составляет 1 строку и 4 столбца (представьте, что это таблица), ваш может быть любым (2x4 или 6x6 или любой другой размер)

1 - строка в диапазоне, на которую я хочу сослаться

3 - столбец в диапазоне, к которому я хочу обратиться

Обязательно закройте функцию с помощью)

Я, оказалось, сделал это более сложным, чем следовало бы, потому что я объединил ячейки и технически ссылался на правый ряд, но не на правый столбец. Я использовал (1,2) в качестве строки и столбца, который ссылался на мою первую ячейку.

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: позже я обнаружил, что это работает только для ссылки на статические данные, поэтому, если вы используете его для шаблона или другой электронной таблицы, которая получает обновления, это не ответ для этой ситуации. Я буду обновлять снова, если я выясню это.

РЕДАКТИРОВАТЬ 2: Чтобы это работало с обновленной электронной таблицей, сделайте следующее.

= ('[June''18 7Q10.xlsm] 1st'! $ C $ 13: $ D $ 13)

На самом деле, это гораздо проще выполнить, чем я это делал изначально, но возвращаясь к занятиям по программированию для начинающих, я хотел убедиться, что понимаю, почему это работает, а не только как это сделать.

Процесс через LINK:

Открыть обе рабочие книги (исходная рабочая книга = 1 и обновленная = 2)

Найдите ячейку, в которую вы хотите вставить данные в (2), и отредактируйте ее с помощью = (.

Теперь перейдите к (1) и щелкните по ячейке, в которую вы хотите «скопировать» данные ИЗ. Это создаст ориентир для вас.

Теперь вернитесь к (2) и завершите функцию, закрыв аргумент с помощью).

Наконец, одновременно нажмите Shift, Control и Enter, и электронные таблицы / рабочие книги свяжутся, вероятно, оставив вас с вашим результатом или 0,0, пока данные не будут обновлены.

...