Хотя вы отметили это функцией «Рабочий лист», вы говорите об использовании VBa в вопросе. Этот VBa делает оба примера, которые вы дали
Option Explicit Sub EeekPirates() Dim formula As String formula = Range("B4").formula Dim split1() As String split1 = Split(formula, "(") Dim temp As String temp = Replace(split1(1), ")", "") Dim splitty() As String splitty = Split(temp, ":") Dim firstCol As Integer firstCol = AscW(Left(splitty(0), 1)) Dim secondCol As Integer secondCol = AscW(Left(splitty(1), 1)) Dim firstRow As Integer firstRow = Right(splitty(0), 1) Dim secondRow As Integer secondRow = Right(splitty(1), 1) Range("B5").Value = "" ' this could be updated to `B4 = ` Dim i As Integer Dim j As Integer For j = firstRow To secondRow For i = firstCol To secondCol Range("B5").Value = Range("B5").Value & Chr(i) & j & "+" Next i Next j Dim length As Integer length = Len(Range("B5").Value) - 1 Range("B5").Value = Left(Range("B5").Value, length) End Sub
Просто помните, что отмены нет, поэтому сначала сделайте резервную копию.
Пример с А1: D1
Пример с А1: D2
Согласно комментариям в коде, если вы обновляете с
Range("B5").Value = ""
в
Range("B5").Value = "B4 = "
Вы закончите с (в B5)
B4 = A1 + B1 + C1 + D1