如何将字符串值传递给VBA中的数组

时间:2015-08-20 08:06:52

标签: excel vba excel-vba

编辑:

现在我将数组更改为范围:Set arrDeviceType = ScriptSheet.Range("P2:P" & LastApar) 但我仍然在Application-definedorobject-defined error

处收到arrDeviceType(X, 1).Resize(I - 2, 0) = "Internet"的错误

我的VBA脚本存在此行问题

arrDeviceType(X, 1).Resize(I - 2, 0) = "Internet"

arrDeviceType被设置为变体,它的单元格值是" Internet System",我需要将该列与" Internet System"使用" Internet"到另一个工作表列,但它们的意思相同。因为我需要匹配这两个值,所以我想让脚本识别" Internet System"和#34;互联网"一样首先在一个工作表中,不对工作表进行实际更改。所以我将列中的所有内容存储到arrDeviceType arrDeviceType = ScriptSheet.Range("P2:P" & LastApar).Value中。

所以问题是我应该怎么做?我对日期值做了相同的操作,将其更改为该月的第一天,就像这个arrOpenDate(X, 1) = arrOpenDate(X, 1) - Day(arrOpenDate(X, 1)) + 1一样,并且它有效,所以我试图用这个字符串值来实现相同的目标。

下面发布的相关代码,有三对字符串需要匹配:

    I = 1
    X = 1
    Do While arrDeviceType(I, 1) = "Internet System"
    I = I + 1
    Loop
    arrDeviceType(X, 1).Resize(I - 2, 0) = "Internet"
    X = I
    OPS = X
    Do While arrDeviceType(OPS, 1) = "Other production system"
    OPS = OPS + 1
    Loop

    arrDeviceType(X, 1).Resize(OPS - X, 0) = "DR"
    X = OPS
    DR = X
    Do While arrDeviceType(DR, 1) = "System subject to disaster recovery"
    DR = DR + 1
    Loop
    arrDeviceType(X, 1).Resize(DR - X, 0) = "DR"

0 个答案:

没有答案