Excel VBA Записать формулу в ячейку, ссылаясь на число, зависящее от I, и на лист, также зависящий от I - PullRequest
0 голосов
/ 15 октября 2018

Может ли кто-нибудь дать мне несколько советов о том, как правильно написать эту формулу?

Sub WriteFormulaTextAndNumbersDependentOnI()
Dim xNumber As Integer
xNumber = InputBox ("Choose I")
    For I = 1 To xNumber
    Worksheets("Sheet1").Cells(1, 1 + I).Formula = "= & 2,10 + 0,01 * (I - 1)'" & Sheets(I + 1).Name & "'!B12"
    Next I
End Sub

Смысл здесь в том, чтобы написать имя в разных ячейках с вычисленным числом (2,10 + 0,01 * (I -1)) и текст с другого листа:

Допустим, у нас есть в Листе 2: B12 = Hello World

Допустим, у нас в Листе 3: B12 = Вы крутые!

Затем мы должны получить на листе 1: I = 1 даст значение / текст в ячейку B2, со значением / текст: "2.10 + 0.01 * (1-1) B12" = "2.10 Hello World"Я = 2 дал бы значение / текст в ячейку C2, со значением / текст: "2.10 + 0.01 * (2-1) B12" = "2.11 Ты классный!"И так далее.

Есть предложения?

Цените любые предложения

// GingerBoy

1 Ответ

0 голосов
/ 15 октября 2018

использование:

  • Concatenate() функция листа для смешивания чисел и текста в одной строке

  • Text() функция листа для форматированиячисло в строку

следующим образом:

Worksheets("Sheet1").Cells(2, 1 + I).Formula = "=concatenate(TEXT(2.10 + 0.01*(" & I & "-1),""0.00""), "" "", " & Sheets(I + 1).Name & "!B12)"

см. что:

  • Я использовал Cells(2, 1 + I) длявпишите в B2, C2 ... согласно вашему описанию

  • Я использовал точки (.) в качестве десятичного разделителя: вы можете изменить все точки на запятые согласно вашему десятичному числуусловные обозначения разделителей

...