首页 > 解决方案 > excel如何解释数组

问题描述

数组是否存储为字符串?

例子 :

Arr[0]="A"
Arr[1]="B"
Arr[2]="C"

如果是的话,这个数组是这样存储的"A,B,C",它是","还是";"分隔符?

我已经构建了以下功能:

Function test(Ref As String) As Variant

Dim creationdetableau() As String
Dim cpt As Integer

cpt = 0

For i = 1 To 35500

If Ref = ThisWorkbook.Worksheets("CashFlows").Cells(i, "A").Value Then
    ReDim Preserve creationdetableau(cpt)
    creationdetableau(cpt) = ThisWorkbook.Worksheets("CashFlows").Cells(i, "B").Value
    
    cpt = cpt + 1
    
    Debug.Print i
End If
Next i

test = creationdetableau

End Function

如果我打电话

=test(A2) 

在 Excel 工作表中,它会打印字符串吗?如果没有,你会怎么做?

我在做什么:

我尝试使用这个公式

=CfDur(E2;P2;CashFlows!B2:B100;CashFlows!J2:J100)

但我的目标是CashFlows!B2:B100用一个名为的自定义 vba 函数替换它test

=CfDur(E2;P2;test(A2);现金流量!J2:J100)

CashFlows!B2:B100 包含日期:

在此处输入图像描述

总结:

=CfDur(E2;P2;test(A2);CashFlows!J2:J100)

不工作

标签: excelvba

解决方案


它们不是“存储”为 a String,而是作为可以通过迭代索引或检索的不同元素。例如:

Sub Dorian()
    Dim Arr(0 To 2) As String, i As Long
    
    Arr(0) = "A"
    Arr(1) = "B"
    Arr(2) = "C"
    
    For i = 0 To 2
        MsgBox Arr(i)
    Next i
    
    For Each a In Arr
        MsgBox a
    Next a
    
End Sub

笔记:

数组的元素可以是数字或图片或范围或大多数其他类型的对象。


推荐阅读