【问题标题】:macro word "VBA error too many line continuations"宏字“VBA 错误太多行继续”
【发布时间】:2021-12-19 22:00:09
【问题描述】:

我有一个很长的变体数组。我试图用 (, _) 打破它,但我仍然遇到同样的错误。

例如:

arr as variant 
arr = array(15,54,10,15,0,0,0,51,12,36,23,15,52,115,132,16,13,18,0,0,0,0,0,0,0,2,0,51,13, _,
            ,1,25,15,31,81,35,64,31,,0,0,0,0,2,0,5,1,4,3,150,1,91,156,151,51,150,1,0,0,0, _ , ...

也许数组长度是 30 行。

有关如何解决此错误的任何帮助?

【问题讨论】:

  • 对此可能有更好的解决方案。为什么需要这样的数组?这些数字是从哪里来的?请记住,VBA 确实有一些限制,如果你遇到一个限制,你可能没有使用最好的解决方案。
  • 如果我的值是一个字符串,我可以用一些好的脚本将它们分解成 255 长。但这不是一个字符串,如果你有一些好主意,我想要一种方法来解决这个问题
  • 如果只有 30 行左右,你能分享完整的东西吗?
  • @vbasic2008 我的意思是数组 30 行 m 不是完整的代码。
  • 即使没有续行限制,我也不会永远将这些值粘贴到代码中!这是 Excel-VBA 代码吗?为什么不将数据粘贴到工作表上,然后通过 VBA 将它们读入数组?然后 - 如果值发生变化 - 任何人都可以将它们再次粘贴到工作表上,而无需编码知识。

标签: arrays vba variant


【解决方案1】:

您不能以其他方式获取数据吗?还是您需要生成随机数?我认为这需要更多解释你打算做什么来帮助自己。

到目前为止,我发现的唯一一件事是您的数组充满了一个函数。不知道这样的回答能不能让你满意。

Sub main()
    Dim arr() As Variant
    arr = Array(15, 54)
    
    Call AddArray(arr, Array(15, 54, 10, 15, 0, 0, 0, 51, 12, 36, 23, 15, 52, 115, 132, 16, 13, 18, 0, 0, 0, 0, 0, 0, 0, 2, 0, 51, 13))
    Call AddArray(arr, Array(1, 25, 15, 31, 81, 35, 64, 31, , 0, 0, 0, 0, 2, 0, 5, 1, 4, 3, 150, 1, 91, 156, 151, 51, 150, 1, 0, 0, 0))
End Sub

Function AddArray(ByRef arr As Variant, ByRef arrAdd As Variant) As Variant
    ' "UBound(arr) - LBound(arr) + 1" : Is the calcul for get length of array
    LengthArr = UBound(arr) - LBound(arr) + 1
    LengthArrAdd = UBound(arrAdd) - LBound(arrAdd) + 1
    
    'Calcul the length of futur array
    LengthNewArr = LengthArr + LengthArrAdd - 1
    
    'Redimension the arr
    ReDim Preserve arr(LBound(arr) To LengthNewArr)
    
    'Fill the arr with i who start to new espace of array at end
    For i = LengthArr To LengthNewArr
        arr(i) = arrAdd(i - LengthArr)
    Next
    
    'AddArray = arr
End Function

结果:arr(0) = 15, arr(1) = 54, ..., ..., arr(59) = 0, arr(60) = 0

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2016-11-20
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多