Excel VBA常量数组到vba代码数组

时间:2017-11-28 19:39:42

标签: excel vba excel-vba

我正在开设excel VBA学校作业,我遇到了一个问题,似乎无法在线找到答案。  我有数据库表保存信息,在某个位置我有常量数组= {false,true,false}我需要它将它转换为VBA数组TF(1到3)  TF(1)的值应为false  TF(2)的值应为true  TF(3)的值应为false 到目前为止我的代码看起来像这样:

Sub trying()
Dim TF(1 To 3) As String
Set targetWorksheet = Worksheets("duomBazeSheet")
Worksheets("duomBazeSheet").Activate

With targetWorksheet
    TF(1) = .Cells(2, 8).Value
    MsgBox (TF(1))

End With
End Sub

" duomBazeSheet"是一张包含所有数据且目标位置为(2,8)

的工作表

任何想法?

编辑:此处链接工作表的外观:数组突出显示https://imgur.com/a/lII3c

2 个答案:

答案 0 :(得分:2)

基于名为Evaluate的功能,可以执行此操作

Dim tf
tf = Application.Evaluate("{True,False,True}")

考虑到H2中的公式文本,试试这个......

Sub Test()


    Dim tf
    tf = Application.Evaluate(ActiveSheet.Cells(2, 8).Formula)

    Dim i
    For i = LBound(tf) To UBound(tf)
        MsgBox tf(i)
    Next i

End Sub

答案 1 :(得分:0)

以下代码声明并填充值为false,true,false的一维数组。 For循环将在结尾显示每个元素。目前还不清楚您想要放置这些值的位置。

Sub trying()
    Dim TF As Variant
    Dim i As Long
    Dim targetWorksheet As Worksheet

    Set targetWorksheet = Worksheets("duomBazeSheet")

    With targetWorksheet
        TF = Split(.Cells(2, 8).Value, Chr$(10)) 'Chr$(10) is a carriage return
    End With

    For i = LBound(TF) To UBound(TF)
        MsgBox TF(i)
    Next i

End Sub