小编Kaz*_*Kaz的帖子

为什么我不能将数组(在数组中)作为参数传递?

我有一个数组数组 arrAggregatedArrays(1 to 8)

我可以像这样调用一个子:

call sub(ArrNewClient)
Run Code Online (Sandbox Code Playgroud)

但是我得到一个编译错误:"如果我尝试这个,请输入"Mismatch":

call sub(arrAggregatedArrays(1))
Run Code Online (Sandbox Code Playgroud)

为什么?它有办法吗?

为什么它不能识别arrAggregatedArrays(1)为数组,即使它会UBound像正常一样执行像它一样的函数?

Public arrAggregatedArrays()     As Variant      '/ Holds all the sheet-Data Arrays  
Run Code Online (Sandbox Code Playgroud)

'/在一个单独的模块中声明

      ReDim arrAggregatedArrays(1 To 8)
            arrAggregatedArrays(1) = arrNewClient
            arrAggregatedArrays(2) = arrExistingClient
            arrAggregatedArrays(3) = arrGroupSchemes
            arrAggregatedArrays(4) = arrOther
            arrAggregatedArrays(5) = arrMcOngoing
            arrAggregatedArrays(6) = arrJhOngoing
            arrAggregatedArrays(7) = arrAegonQuilterArc
            arrAggregatedArrays(8) = arrAscentric

      Call FilterSheetArrayForColumns(arrAggregatedArrays(1))

Public Sub FilterSheetArrayForColumns(ByRef arrCurrentArray() As Variant)
Run Code Online (Sandbox Code Playgroud)

和截图:

编译错误

excel vba arguments excel-vba

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

为什么数字单元格没有.Characters()属性?

使用任何文本值,我可以单独格式化每个字符,然后通过迭代Range.Characters()集合将该格式复制到另一个单元格.

但是,如果单元格是一个数字(即使numberFormatting将其显示为字符串,例如日期),那么它不会公开.Characters()属性,实际上,不能逐个数字地选择性地格式化.

为什么Excel使用Character对象而不是数字显示字符串,即使数字显示为字符串?

excel vba character excel-vba number-formatting

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

为什么Day()在无效输入时返回30?

这是我发现的一个问题,然后我自己解决了,因为我找不到关于这个主题的SO问题,我想我会创建一个供将来参考.

我不小心写了

debug.Print day(ow)
Run Code Online (Sandbox Code Playgroud)

代替

debug.Print day(now)
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我没有抛出错误,而是得到了以下结果:

debug.Print day(ow)
 30 
Run Code Online (Sandbox Code Playgroud)

当给定未初始化的变量作为输入时,为什么不抛出错误?

vba

5
推荐指数
2
解决办法
61
查看次数

为什么有Word的Application.Activate方法而不是Excel?

Word.Application对象公开的.Activate方法.

一个Excel.Application对象,而另一方面,仅公开了一个.ActivateMicrosoftApp其中执行显着不同的功能,以"激活该特定应用对象"的方法.

为什么没有Excel.Application.Activate方法?

excel vba ms-word

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

`Array`和`Array()`有什么区别?

我可以声明一个数组:

Dim arrTest() As Variant
Run Code Online (Sandbox Code Playgroud)

或者因此:

Dim arrTest2 As Variant
arrTest2 = Array()
Run Code Online (Sandbox Code Playgroud)

但是,第一个只能作为参数传递,如下所示:

Sub(ByRef arrTest() As Variant)
Run Code Online (Sandbox Code Playgroud)

第二个是这样的:

Sub(ByRef arrTest2 As Variant)
Run Code Online (Sandbox Code Playgroud)

你可以用第二个做到这一点:

ReDim arrTest2(UBound(arrTest2) + N)
Run Code Online (Sandbox Code Playgroud)

但不是第一个.

声明第一种方式的变量数组和声明第二种方式的变量数组有什么区别?
它们都是一样的vartype() - 8204 - Array of variants
为什么宏对它们的区别对待不同?

excel vba excel-vba variable-declaration

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