arrays - 如何在 VBA 的公式中使用数组变量而不是范围
问题描述
所以,我想使用 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
解决方案
推荐阅读
- javascript - 如何在 Range 的末尾插入节点?
- python - 石墨烯突变:如何将参数传递给模式执行
- php - 如何在 php 中创建嵌套的 JSON 对象?
- json - 无法通过 jq 查询超过 json 的第 3 级
- android - Recyclerview 列表到服务器
- sql - 在 presto 上的多列上选择不同的连接
- amazon-web-services - AWS EC2 Ubuntu 16.04 64bit中的VS Code远程连接内存不足
- r - 如何按R中每列中的最后一个值对数据框中的列进行重新排序
- r - R-shiny app-DT包栏目信息
- c - 此行指针解释的宏