Как применить формулу к каждой ячейке в диапазоне и напечатать результат для каждой ячейки в ячейке zz новая строка - PullRequest
0 голосов
/ 22 мая 2019

Моя цель - уметь "переводить" из-за отсутствия лучшего термина; каждая ячейка в диапазоне листа в VBA.

Это означает, что я могу мгновенно взять существующую книгу и создать VBA для ее воссоздания.

Итак, я собрал этот UDF. Он показывает ячейку, как она выглядит в VBA. Формат R1C1

Function showformula(rng As Range)
    If rng.HasArray = True Then
        showformula = "{" & rng.Formula & "}"
    Else
        showformula = "Sheets(""" & ActiveSheet.Name & """). Range(""" & rng.Address & """)" & ".FormulaR1C1 = " & """" & rng.FormulaR1C1 & """"
    End If
End Function

Итак 1) показать окно выбора пользователя для указания диапазона. Затем нажмите «Продолжить» и 2) приведенный выше UDF читает для каждой ячейки в указанном диапазоне и 3) печатает результат каждой ячейки на новой строке в ячейке ZZ.

1 достаточно просто googlefu

но 2) & 3) Я не знаю, как бы это написать

1 Ответ

0 голосов
/ 22 мая 2019

https://www.reddit.com/r/excel/comments/brndla/how_to_apply_formula_to_every_cell_in_range_and/

Решение возникло здесь

    Sub BuildList()
    Dim c As Range
    Dim rngInput As Range
    Dim rngOutput As Range
    Dim i As Long

    'Ask our user for stuff
    Set rngInput = Application.InputBox("What cells do you want to read?", "Input", , , , , , 8)
    Set rngOutput = Application.InputBox("Where do you want output to go?", "Output", , , , , , 8)

    Application.ScreenUpdating = False

    'Write the answers
    For Each c In rngInput.Cells
        rngOutput.Cells(1).Offset(i).Value = ShowFormula(c)
        i = i + 1
    Next c
    Application.ScreenUpdating = True
End Sub

    Function ShowFormula(rng As Range)
        If rng.HasArray = True Then
            ShowFormula = "{" & rng.Formula & "}"
        Else
            ShowFormula = "Sheets(""" & ActiveSheet.Name & """). Range(""" & rng.Address & """)" & ".FormulaR1C1 = " & """" & rng.FormulaR1C1 & """"
        End If
    End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...