Мне нужно перетащить формулу массива с помощью VBA и вставить значения, но Excel продолжает падать - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь перетащить формулу массива для диапазона ячеек, а затем скопировать / вставить соответствующие значения. Тем не менее, мой Excel продолжает падать. По сути, формула переходит в указанную строку c, а затем все значения жестко вставляются в таблицу. Я новичок в VBA, поэтому, пожалуйста, не стесняйтесь анализировать мой код и давать предложения.

Dim lastRow1 As Long
lastRow1 = 37

'change i to whatever your starting row is. Cells(i, #), the # indicates the column index
For i = 3 To lastRow1
Cells(i, 10).Value = Cells(i, 6)
Cells(i, 6).FormulaArray = ""array formula"
Cells(i, 6).Copy
Cells(i, 6).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

1 Ответ

0 голосов
/ 04 марта 2020

перетащите вниз:

   Range("A6").Select
   ActiveCell.FormulaR1C1 = "formula"
   Selection.AutoFill Destination:=Range("A6:A" & lastRow1)

скопируйте и вставьте значения:

   Range("A6:A" & lastRow1).Select
   Selection.Copy
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

функция lastRow ( lastRow1 = fLastRow вместо lastRow1 = 37):

Function fLastRow() As Long
    fLastRow = 0
    If WorksheetFunction.CountA(Cells) > 0 Then
        fLastRow = Cells.Find(What:="*", After:=[A1], _
              SearchOrder:=xlByRows, _
              SearchDirection:=xlPrevious).Row
    End If
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...