Excel 如何在VBA中声明一系列变量,如从X1到席

Excel 如何在VBA中声明一系列变量,如从X1到席,excel,declare,vb-script,asp-classic,Excel,Declare,Vb Script,Asp Classic,在vba中,如果使用选项Explicit,则需要声明所有变量 但是,如果我有很多变量想命名,比如x1,x2,x3xi,因此从命名的角度来看,公共的x使它们相互关联(与a,b,c,d…) 当看到它们时,人类会知道它们都属于x,但有没有办法让vba知道,只需一次性声明x,x1,x2。。。?而不是 Dim x1 as double, x2 as double, x3 as double... 谢谢大家! 声明一个数组。与或不同,您不能通过串联值进行声明或赋值 'this does not work

在vba中,如果使用选项
Explicit
,则需要声明所有变量

但是,如果我有很多变量想命名,比如
x1
x2
x3
<代码>xi,因此从命名的角度来看,公共的
x
使它们相互关联(与
a
b
c
d
…)

当看到它们时,人类会知道它们都属于
x
,但有没有办法让vba知道,只需一次性声明
x
x1
x2
。。。?而不是

Dim x1 as double, x2 as double, x3 as double...
谢谢大家!

声明一个数组。与或不同,您不能通过串联值进行声明或赋值

'this does not work
dim i as long
for i=1 to 99
    dim x & i as double
    x & i = i * 1.5
next i

'this works
dim i as long, x as variant
i=99
redim x(1 to i)

for i=lbound(x) to ubound(x)
    x(i) = i * 1.5
next i

for i=lbound(x) to ubound(x)
    debug.print x(i)
next i
声明一个数组。与或不同,您不能通过串联值进行声明或赋值

'this does not work
dim i as long
for i=1 to 99
    dim x & i as double
    x & i = i * 1.5
next i

'this works
dim i as long, x as variant
i=99
redim x(1 to i)

for i=lbound(x) to ubound(x)
    x(i) = i * 1.5
next i

for i=lbound(x) to ubound(x)
    debug.print x(i)
next i

这(连接)在vbscript中也不起作用。或者ASP classic(通常是vbscript),也许现在不是了,但我很确定我使用了它(仅在动态声明和赋值时使用,没有Dim'ming)在20世纪后半叶,在我意识到这种方法有多么残忍之前。我记得的唯一原因是我对它的实际工作感到非常惊讶。VBscript有
Eval()
,就是这样。正如你所注意到的,那是很久以前的事了。话虽如此,我承认仍然使用ASP classic,这样我就可以使用服务器端js了。这种(连接)在vbscript中也不起作用。或者ASP classic(通常是vbscript),也许现在不是了,但我很确定我使用了它(仅在动态声明和赋值时使用,没有Dim'ming)在20世纪后半叶,在我意识到这种方法有多么残忍之前。我记得的唯一原因是我对它的实际工作感到非常惊讶。VBscript有
Eval()
,就是这样。正如你所注意到的,那是很久以前的事了。话虽如此,我承认仍在使用ASP classic,以便使用服务器端js。首先使用更好的命名,然后使用数组。DIM descriptivenamex(100)为双精度。首先使用更好的命名,然后使用数组。DIM DescriptiveNameEx(100)为双色。