Счетчик в Excel

Мой файл содержит 50 листов, каждый из которых является стандартной формой. Позволяет использовать имя Form1, Form2, Form3.

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

Что я сделал до сих пор? Я создал эту формулу, где M1 – раскрывающийся список с именами форм. Поэтому, если я хочу видеть Form2, я выбираю Form2 в раскрывающемся списке, а формула отображает весь лист Form2.

=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);"") 

Он работает нормально, потому что все формы стандартизированы.

После выбора выбранной формы мне нужно вставить идентификационный номер из моей компании, а затем распечатать его.

Я хотел бы знать, можно ли создать счетчик на этом листе, который подсчитывает, сколько раз я печатал … Или что-нибудь, что можно было бы подсчитать в хронологическом порядке, когда я что-то сберегу или что-нибудь изменим …

Все ваши запросы могут быть размещены. Но только с помощью VBA я боюсь.

Сохраните раскрывающийся список, но также добавьте кнопку, которая запускает макрос.

В макросе прочитайте ячейку с выпадающим меню и отправьте соответствующий лист для печати. Затем обновите соответствующий счетчик, который может находиться в наборе ячеек на той же странице, что и раскрывающийся список.

Чтобы подсчитать количество сохранений, вам понадобится макрос, который перед функцией_сохранения. Вам нужно искать это, я думаю, что на моем блоге может быть даже статья об этом, не помню, прошло несколько лет с тех пор, как я это сделал. Принцип совпадает с предыдущим макросом, поскольку вы просто добавляете 1 в соответствующую ячейку.

Несколько более чистый способ создания «листа печати», который отображает содержимое одного из других 50 листов, – установить ячейку A1 на

 =INDIRECT($M$1 & "!A1") 

Который строит текстовую строку, которая выглядит как квалифицированное имя ячейки, которую вы хотите видеть, а затем использует функцию INDIRECT() для удаления ссылки на эту строку (т. Е. Для обработки ее как адреса ячейки и получения содержимого Идентифицированная клетка). При этом вам не нужно будет менять формулу (ы) при добавлении Form51 . Предупреждения:

  • Это может заставить Excel выполнить большую работу (т. Е. Потратить много времени) «перерасчета» этих косвенных ячеек всякий раз, когда что-либо изменяется (а не только M1 ). Я не уверен, будет ли это хуже, чем у вас сейчас.
  • Обязательно избегайте соблазна изменить данные или ввести новые данные в «лист печати», если вы хотите обновить Form42 . (Конечно, у вас есть этот вопрос сейчас.) Вы можете защитить себя от таких аварий, защитив лист печати.

Существуют и другие способы построения листа печати; Например, используя VBA для

  • Создайте пользовательскую функцию, которая может заменить вызов INDIRECT() , но работать более плавно или
  • Фактически копируйте все данные из Form nn в лист печати всякий раз, когда вы меняете M1 .

Вы можете подсчитать изменения, написав процедуру Worksheet_Change VBA.

Я не знаю, как логика листа могла бы рассчитывать / обнаруживать, когда вы печатаете ее. Однако вы можете добиться желаемого эффекта, написав процедуру печати в VBA.

 PrintOut , , , True 

Заявление распечатает лист для вас; Добавьте любые другие действия, которые вы хотите (например, увеличивая счетчик). (Вы просто должны помнить, чтобы печатать с использованием этого макроса .) Четвертый параметр PrintOutPreview , установите значение True чтобы Microsoft Excel вызывал предварительный просмотр печати перед печатью листа (таким образом давая вам возможность отменить) или False (или опущен) Чтобы распечатать лист немедленно, безоговорочно.

См. Как добавить VBA в MS Office? Для информации, ну, вы знаете.

  • Почему Excel обрабатывает длинные числовые строки как научную нотацию даже после изменения формата ячейки в текст
  • Как преобразовать одну строку данных в несколько строк в Excel
  • Как я могу записать переход от 0 до 1 в столбце Excel?
  • Экспорт таблицы Excel Excel в csv с использованием макроса
  • Я не могу написать номер кредитной карты, когда я пишу последний номер, становится 0
  • Извлечение нескольких числовых значений из смешанных символов в листе excel
  • Создание формулы, которая запрашивает данные в столбце B на основе выбора из столбца A в Microsoft Excel
  • Объединить строки Excel с двух листов
  • Самый простой способ открыть CSV с запятыми в Excel
  • Как я могу суммировать свои данные по неделям?
  • Microsoft Excel 2010 Как ссылаться на таблицу на другой лист
  • Давайте будем гением компьютера.