小编Eli*_*ias的帖子

EXCEL VBA错误:"编译错误:预期的数组"

谁能帮我?

在处理Excel工作簿中的数组时,我遇到了编译错误(...:"预期数组").

基本上,我有一个'母'阵列(2D,Variant类型)和四个'baby'阵列(1D,Double类型).被调用的子例程创建公开声明的数组,我的主宏最终用于显示目的.不幸的是,婴儿阵列的最后一个出来了(给出了"编译错误:预期数组").奇怪的是,如果我删除这个最终的婴儿阵列('最终' - 按照声明/定义的顺序),第二个到最后一个婴儿阵列开始剔除.

这是我的代码:

 Public Mother_Array() as Variant, BabyOne_Array(), BabyTwo_Array(), BabyThree_Array(), BabyFour_Array() as Double 'declare may other variables and arrays, too

Sub MainMacro()
    'do stuff

   Call SunRaySubRoutine(x, y)

    'do stuff

    Range("blah") = BabyOne_Array: Range("blahblah") = BabyTwo_Array
    Range("blahbloh" = BabyThree_Array: Range("blahblue") = BabyFour_Array

End Sub

Sub SunRaySubRoutine(x,y)
    n = x * Sheets("ABC").Range("A1").Value + 1

    ReDim Mother_Array(18, n) as Variant, BabyOne_Array(n), BabyTwo_Array(n) as Double
    ReDim BabyThree_Array(n), BabyFour_Array(n) as Double

    'do stuff

    For i = 0 to n

        BabyOne_Array(i) = Mother_Array(0,i) …
Run Code Online (Sandbox Code Playgroud)

arrays excel vba compiler-errors

2
推荐指数
1
解决办法
4万
查看次数

EXCEL VBA:暂停'For Loops'

一般问题......

如果我在我的VBA代码中暂停/退出/中断"For"循环(基于Excel)会有什么危险?

这是我的代码:

For i = 1 to Sheets.Count

    'check stuff
    'do stuff

    if MsgBox("blah blah", vbyesnocancel, "blah") = vbyes then
       'do stuff
        GoTo loopescape
    End if

Next

loopescape:

'rest of code
Run Code Online (Sandbox Code Playgroud)

基本上,我的代码构造方式过早地退出for循环(基于用户的输入).我只是想知道这是否会使我的程序易受崩溃(或其他危险).

那么,你认为中断/暂停/退出'for'循环可能会有问题吗?

谢谢,

埃利亚斯

excel vba loops exit

1
推荐指数
1
解决办法
132
查看次数

EXCEL VBA:Userform代码,重复代码改进

我是否有更有效的方法来编写此用户表单代码?

Private Sub Userform_Initialize()

'do stuff

    With Item1_DropDown
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

    With Item2_DropDown
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

    With Item3_DropDown
        .AddItem "Monday"
        .AddItem "Tuesday"
        .AddItem "Wednesday"
    End With

'and so on, and so on. (I have about fifty of these 'With/End With' blocks)

End Sub
Run Code Online (Sandbox Code Playgroud)

基本上,我希望能够停止写这么多'With/End With'块.现在,我在四个类似构造的用户表单中有这种类型的代码.它占用了太多的文本空间,似乎是一种浪费.有一个更好的方法吗?

请知道我从未写过课程模块.所以,如果解决方案需要它,我将需要被其中的宝宝所吸引.

谢谢,

埃利亚斯

excel vba combobox class userform

0
推荐指数
1
解决办法
801
查看次数

标签 统计

excel ×3

vba ×3

arrays ×1

class ×1

combobox ×1

compiler-errors ×1

exit ×1

loops ×1

userform ×1