Счетчик в Excel
Мой файл содержит 50 листов, каждый из которых является стандартной формой. Позволяет использовать имя Form1, Form2, Form3.
Я хочу создать лист печати, где я выбираю, какую форму я хочу видеть, так что мне не нужно перемещаться между листами, чтобы найти нужную. И я хочу иметь счетчик в этом листе печати, который он рассчитывает каждый раз, когда я отправляю на принтер.
Что я сделал до сих пор? Я создал эту формулу, где M1 – раскрывающийся список с именами форм. Поэтому, если я хочу видеть Form2, я выбираю Form2 в раскрывающемся списке, а формула отображает весь лист Form2.
- Почему Excel обрабатывает длинные числовые строки как научную нотацию даже после изменения формата ячейки в текст
- Как сделать раскрывающийся список «Проверка данных» исключать пробелы?
- Как сохранить автоматическое изменение формул и диапазонов формул форматирования?
- Показать вкладку листа Excel в> = 2 строки
- 3D-диаграмма XYZ в Excel
=IF($M$1="Form1";IF('Form1'!A1="";"";'Form1'!A1);"")&IF($M$1="Form2";IF('Form2'!A1="";"";'Form2'!A1);"")&IF($M$1="Form3";IF('Form3'!A1="";"";'Form3'!A1);"")
Он работает нормально, потому что все формы стандартизированы.
После выбора выбранной формы мне нужно вставить идентификационный номер из моей компании, а затем распечатать его.
Я хотел бы знать, можно ли создать счетчик на этом листе, который подсчитывает, сколько раз я печатал … Или что-нибудь, что можно было бы подсчитать в хронологическом порядке, когда я что-то сберегу или что-нибудь изменим …
- Ограничить использование пасты в выпадающих ячейках в excel
- VBA Macro для сортировки и применения условного форматирования к диапазону ячеек с динамическим числом строк
- Отображать пустое значение при ссылке на пустую ячейку в Excel 2010
- Как иметь ячейку, которая отображает кумулятивное значение всех значений, введенных в другую ячейку?
- Предотвратите удаление Excel скопированных данных для вставки после определенных операций без буфера обмена Office
- Открытие книги Excel 2003 в Excel 2010 32-бит вызывает ложную циркулярную ссылку и сбои
- Как сохранить двойные кавычки и точку с запятой в файле csv при открытии файла в excel 2010?
- Я не могу написать номер кредитной карты, когда я пишу последний номер, становится 0
Все ваши запросы могут быть размещены. Но только с помощью VBA я боюсь.
Сохраните раскрывающийся список, но также добавьте кнопку, которая запускает макрос.
В макросе прочитайте ячейку с выпадающим меню и отправьте соответствующий лист для печати. Затем обновите соответствующий счетчик, который может находиться в наборе ячеек на той же странице, что и раскрывающийся список.
Чтобы подсчитать количество сохранений, вам понадобится макрос, который перед функцией_сохранения. Вам нужно искать это, я думаю, что на моем блоге может быть даже статья об этом, не помню, прошло несколько лет с тех пор, как я это сделал. Принцип совпадает с предыдущим макросом, поскольку вы просто добавляете 1 в соответствующую ячейку.
Несколько более чистый способ создания «листа печати», который отображает содержимое одного из других 50 листов, – установить ячейку A1
на
=INDIRECT($M$1 & "!A1")
Который строит текстовую строку, которая выглядит как квалифицированное имя ячейки, которую вы хотите видеть, а затем использует функцию INDIRECT()
для удаления ссылки на эту строку (т. Е. Для обработки ее как адреса ячейки и получения содержимого Идентифицированная клетка). При этом вам не нужно будет менять формулу (ы) при добавлении Form51
. Предупреждения:
- Это может заставить Excel выполнить большую работу (т. Е. Потратить много времени) «перерасчета» этих косвенных ячеек всякий раз, когда что-либо изменяется (а не только
M1
). Я не уверен, будет ли это хуже, чем у вас сейчас. - Обязательно избегайте соблазна изменить данные или ввести новые данные в «лист печати», если вы хотите обновить
Form42
. (Конечно, у вас есть этот вопрос сейчас.) Вы можете защитить себя от таких аварий, защитив лист печати.
Существуют и другие способы построения листа печати; Например, используя VBA для
- Создайте пользовательскую функцию, которая может заменить вызов
INDIRECT()
, но работать более плавно или - Фактически копируйте все данные из
Form nn
в лист печати всякий раз, когда вы меняетеM1
.
Вы можете подсчитать изменения, написав процедуру Worksheet_Change
VBA.
Я не знаю, как логика листа могла бы рассчитывать / обнаруживать, когда вы печатаете ее. Однако вы можете добиться желаемого эффекта, написав процедуру печати в VBA.
PrintOut , , , True
Заявление распечатает лист для вас; Добавьте любые другие действия, которые вы хотите (например, увеличивая счетчик). (Вы просто должны помнить, чтобы печатать с использованием этого макроса .) Четвертый параметр PrintOut
– Preview , установите значение True
чтобы Microsoft Excel вызывал предварительный просмотр печати перед печатью листа (таким образом давая вам возможность отменить) или False
(или опущен) Чтобы распечатать лист немедленно, безоговорочно.
См. Как добавить VBA в MS Office? Для информации, ну, вы знаете.