Как использовать переменную массива вместо диапазона в формуле в VBA - PullRequest
0 голосов
/ 06 мая 2019

Итак, я хочу использовать 1D и 2D массивы вместо диапазонов в формулах, за исключением того, что все, что я пробовал, не работало. Если кто-нибудь может, могут ли они помочь?

Кроме того, при транспонировании моих данных я не понимаю, как это сделать, ссылаясь на другие листы.

Sub Testrun()

Cells(5, 6).Value = "=Sum([myArr])"

Set mcco = Workbooks("Book1.xlsb").Worksheets("Sheet1")
Set mcfc = Workbooks("Book1.xlsb").Worksheets("Sheet2")
Set mcfb = Workbooks("Book1.xlsb").Worksheets("Sheet3")

TR = Application.CountA(Range("A:A"))

FTNRowStart = 1
MainRowStart = 2
CVTRRowEnd = mcco.Range("A2", mcco.Range("A2").End(xlDown)).Rows.Count + 1
FCRowEnd = mcfc.Range("A2", mcfc.Range("A2").End(xlDown)).Rows.Count + 1

MNCol = 2
FNCol = 4
FTNCol = 8

CVTRmyArr = Application.Transpose(Range(Cells(MainRowStart, MNCol), Cells(CVTRRowEnd, MNCol)))
FCmyArr = Application.Transpose(Range(Cells(MainRowStart, MNCol), Cells(FCRowEnd, MNCol)))
FNmyArr = Application.Transpose(Range(Cells(MainRowStart, FNCol), Cells(FCRowEnd, FNCol)))

mcfc.Activate    

For i = 2 To TR
    s = 0
    TCJ = Cells(1, Columns.Count).End(xlToLeft).Column + 7
    For j = 8 To TCJ
        TCK = mcfb.Cells(i, Columns.Count).End(xlToLeft).Column + 1
        For k = 2 To TCK
        XD = "=COUNTIFS(CVTRmyArr,'Sheet3'!R" & i & "C" & k & ",'Sheet3'!R[0]C" & k & ",FNmyArr,""*"" & SUBSTITUTE(MID(FNmyArr,FIND(""*"",SUBSTITUTE(FNmyArr,""("",""*"",LEN(FNmyArr) - LEN(SUBSTITUTE(FNmyArr,""("","""")))) +1,LEN(FNmyArr)),"")"",""""))"

        mcfc.Cells(i, j).Value = XD
        s = s + Cells(i, j).Value
        Cells(i, j).Value = s

        Next k
    Next j
Next i

End Sub
...