【发布时间】:2022-01-18 07:44:12
【问题描述】:
我正在尝试找出正确的代码
FormatStrokeArray = Array (120 to 300 step 1)
因为输入数百个整数会很疯狂。
稍后我尝试使用
查找我的值是否在该数组中If IsInArray(FormatStroke, FormatStrokeArray) = True Then
MsgBox ("WORKS")
end if
功能是
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = UBound(Filter(arr, stringToBeFound)) > -1
End Function
【问题讨论】:
-
为什么要比较一个字符串(stringToBeFound)和一个用整数填充的数组?
-
因为我不知道如何为我想要实现的目标编写代码,所以我发布了一个关于它的帖子
-
不要使用数组,使用 ArrayList。您将需要对 mscorlib 的引用或通过“Sytem.Collections.Generic.ArrayList”使用后期绑定创建。您使用 .Add 方法填充 ArrayList。您可以使用 .contains 方法检查值是否存在。请注意,ArrayList 不提供任何智能感知,并且您可能需要对某些重载方法进行反复试验。如果你想更勇敢一点,你可以试试我的 Lyst 对象,它没有这些限制,但 IS 正在进行中。您需要给我发消息以获取下载链接。
-
其他快捷方式。在标注数组时,Step 不是 To 的合法语法。 Array 语句(即 = Array)接受一个值列表并返回一个 Variant,其中包含您提供的项目数组。要获取字符串数组,您将使用 Dim FormatStrokeArray(80)。 VBA 确实允许 120 到 300,但你为什么需要这个而不是 80 个项目的数组。顺便说一句,ArrayList 还有一个 ToArray 方法,如果您需要将数据推回 Excel 中,该方法很有用。
-
我确实意识到,使用它只是以某种代码形式解释逻辑的手段