Формулы Excel для значений

Формулы Excel для значений

Есть ли способ сделать число, возвращаемое формулой, значением, не используя метод «Вырезать и вставить»?

Потому что мне пришлось бы делать это примерно на сотне разных ячеек каждый день. Так что Вырезать и Вставить — нежизнеспособный метод. Нет ли какого-то сокращения или странного способа, которым я могу этого избежать.

Для упрощения... мне нужно, чтобы B1 = A4. Затем я обновлю A4, добавив новые данные о днях, и тогда мне нужно будет, чтобы B2 = A4 — старое значение B1.

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

Помните, я не могу копировать и вставлять снова и снова.

Кто-нибудь может мне помочь!

решение1

Это предполагает, что столбецБи клеткаА4начать полностью пустым. Поместите следующий макрос события в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A4 As Range, B1 As Range, n As Long
    Set A4 = Range("A4")
    Set B1 = Range("B1")
    If Intersect(A4, Target) Is Nothing Then Exit Sub

    Application.EnableEvents = False
        If B1 = "" Then
            B1 = A4
        Else
            n = Cells(Rows.Count, "B").End(xlUp).Row
            Cells(n + 1, "B").Value = Cells(n, "B").Value - A4
        End If
    Application.EnableEvents = True
End Sub

Так как это код рабочего листа, его очень легкоустановитьи автоматически использовать:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите «Просмотреть код» — откроется окно VBE
  3. вставьте текст и закройте окно VBE

Если у вас возникли какие-либо сомнения, попробуйте сначала на пробном листе.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx

Кудалятьмакрос:

  1. откройте окна VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы узнать больше о макросах в целом, см.:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код рабочего листа), см.:

http://www.mvps.org/dmcritchie/excel/event.htm

Для работы этого метода должны быть включены макросы!

решение2

Используя подобный шаблон, можно создать именованный диапазон («NR»), используя относительные ссылки и тщательно выбирая активную ячейку при создании именованного диапазона, а затем использовать ее каждый день для вставки значений.

Под set patternэтим я подразумеваю, что если 1 июля "имеет место" в ячейках B1, H4 и XX9, то 2 июля имеет место сразу под этими ячейками: B2, H4 и XX10. И так далее в течение любого месяца. НИКОГДА не будет так, чтобы он перешел в B2, H38, XX10 на второй день.

Вы можете выбрать именованный диапазон в поле слева от панели редактирования формулы. Тот, который показывает вашу активную ячейку. После выбора вы просто Copy, затем Paste|Special|Valuesв один шаг и все готово. Так что выберите именованный диапазон в поле, затем скопируйте и вставьте. Все готово.

Чтобы это заработало, используйте относительные ссылки (не $B$1: используйте B1), чтобы это было сделано, если выбран B1, но если выбран B2, то вместо этого будет сделан выбор B2.

Другой шаг, чтобы это сработало, — сделать первую ячейку активной ячейкой во время создания NR. Если вы являетесь ячейкой под ней, она выберет B2, а не B1!

Создайте строку, которая перечисляет ячейки в диапазоне, как вам нужно, даже если вам придется набрать все "около сотни" адресов ячеек. Это всего один раз. Множество трюков, использующих преимущества объединения строк, могут помочь. После того, как вы это сделаете, не проверяйте ее, изучая маленькие фрагменты текста! Выберите ее и посмотрите, выбрала ли она все нужные ячейки. Гораздо проще точно проверить таким образом: это похоже на сравнение двух страниц, символ за символом, чтобы увидеть, одинаковы ли они, а не накладывание одной на другую, поднесение их к свету и проверка на наличие каких-либо различий. Последнее не только намного проще, но и точнее.

Создайте строку вне функции NR, затем скопируйте ее и вставьте в поле Значение для нового NR. Никакого набора текста за пределами простой, наполненной инструментами среды обычной страницы электронной таблицы.

Наконец, странность Windows, а не Excel: ПОСЛЕДНИЙ адрес ячейки в NR — это тот, с которого она начнется, а не ПЕРВЫЙ. Он перейдет на первый следующий, если вы TABпройдете, но... ЧТО? Так что перечислите ячейки, начиная с #2, #3, ... #последняя, ​​#1, и у него будет та, которую вы хотите сделать первой активной ячейкой.

Здесь это не имеет значения для вашего копирования и вставки, только для "просто того, где вы находитесь" для начала дальнейшей работы, когда это сделано. Однако другие варианты использования, другие электронные таблицы, это может быть полезно рассмотреть.

Повторяю, каждый день вы выбираете ячейку A среди тех, куда нужно вставить значения, затем выбираете диапазон, затем копируете и вставляете. Вот и все. Макросы не нужны, поэтому не нужно учиться, а диапазон можно легко редактировать или дополнять, если что-то изменится.

Связанный контент