Счетчик в Excel
Мой файл содержит 50 листов, каждый из которых является стандартной формой. Позволяет использовать имя Form1, Form2, Form3.
Я хочу создать лист печати, где я выбираю, какую форму я хочу видеть, так что мне не нужно перемещаться между листами, чтобы найти нужную. И я хочу иметь счетчик в этом листе печати, который он рассчитывает каждый раз, когда я отправляю на принтер.
Что я сделал до сих пор? Я создал эту формулу, где M1 – раскрывающийся список с именами форм. Поэтому, если я хочу видеть Form2, я выбираю Form2 в раскрывающемся списке, а формула отображает весь лист Form2.
- Excel - количество видимых ячеек, содержащих определенную строку.
- Экземпляр Excel VBA.
- Excel. Предотвращение переполнения текста ячейки в следующую (пустую) ячейку.
- В Excel 2010 функция = COUNTIF, отображающая значение неправильно
- Кнопка Microsoft Powerpivot не работает
=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 2010 Функция «Найти», возвращающая значение #value
- Проблемы с макросами Excel 2010
- Как изменить цвет ячеек на основе сегодняшней даты в Excel 2010
- Как я могу гиперссылки из PowerPoint в Excel, ссылки на конкретную вкладку и названный диапазон или ячейку?
- Преобразование данных электронной таблицы Excel
- Excel, как найти номер столбца min значение?
- Не удалось заставить Excel распознать дату в столбце
- Построение множества наборов данных разной длины на одном и том же графе рассеяния в Excel 2010
Все ваши запросы могут быть размещены. Но только с помощью 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? Для информации, ну, вы знаете.