Как заполнить динамический диапазон формулами в VBA? - PullRequest
0 голосов
/ 04 декабря 2018

Я использую следующий код в VBA, чтобы заполнить столбец до определенной ячейки выбора (которую можно изменить, изменив значение ячейки) по формуле:

Worksheets("Deelnemersbestand").Range("B2:B"&aantalDeelnemers).Formula="=RAND()"

Я хочу очистить оставшуюся частьэтот столбец B, а также.

Но это не работает.Какие-либо предложения?Я новичок в этом.

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

RAND против RANDBETWEEN

Чтобы включить RANDBETWEEN, в Excel вам нужно перейти в Инструменты> Надстройки и проверить пакет инструментов анализа.

Sub Bestand()

  Const cWs1 As String = "Interface"            ' First Worksheet
  Const cWs2 As String = "Deelnemersbestand"    ' Second Worksheet
  Const cRngName As String = "aantalDeelnemers" ' Cell Range in First Worksheet
  Const cColumn As Variant = "B"                ' Column Letter/Number
  Const cFirstRow As Integer = 2                ' First Row of Data
  Const cFormula As String = "=RAND()" '"=RANDBETWEEN(21,50)"

  Dim i As Integer

  i = Worksheets(cWs1).Range(cRngName).Value

  With Worksheets(cWs2)
    .Range(.Cells(cFirstRow, cColumn), .Cells(i, cColumn)).Formula = cFormula
    .Range(.Cells(i + 1, cColumn), .Cells(.Rows.Count, cColumn)).ClearContents
  End With

End Sub
0 голосов
/ 04 декабря 2018
Sub test()

Dim aantalDeelnemers, aantalDeelnemersLegen As Integer


aantalDeelnemers = Worksheets("Interface").Range("aantalDeelnemers").Value
aantalDeelnemersLegen = aantalDeelnemers + 1
Worksheets("Deelnemersbestand").Range("B2:B" & aantalDeelnemers).Formula = "=RAND()"
Worksheets("Deelnemersbestand").Range("B" & aantalDeelnemersLegen & 
":B1000").ClearContents

End Sub
...