excel-vba 使用带定界符的字符串代替动态数组
示例
在非常大的数据集上,在VBA中使用动态数组可能很麻烦且耗时。当在动态数组中存储简单数据类型(字符串,数字,布尔值等)时,可以ReDimPreserve通过将Split()函数与一些巧妙的字符串过程配合使用来避免在VBA中使用动态数组所需的语句。例如,我们将看一个循环,该循环根据某些条件将范围内的一系列值添加到字符串中,然后使用该字符串填充ListBox的值。
Private Sub UserForm_Initialize()
Dim Count As Long, DataString As String, Delimiter As String
For Count = 1 To ActiveSheet.UsedRows.Count
If ActiveSheet.Range("A" & Count).Value <> "Your Condition" Then
RowString = RowString & Delimiter & ActiveSheet.Range("A" & Count).Value
Delimiter = "><" 'By setting the delimiter here in the loop, you prevent an extra occurance of the delimiter within the string
End If
Next Count
ListBox1.List = Split(DataString, Delimiter)
End SubDelimiter字符串本身可以被设置为任意值,但它是明智的选择,不会自然集内发生的值。假设您正在处理一列日期。在那种情况下,使用.,-或/作为分隔符是不明智的,因为可以将日期格式化为使用其中任何一种格式,从而产生比您预期的更多的数据点。
注意:使用此方法有一些限制(即最大字符串长度),因此在数据集非常大的情况下应谨慎使用。这不一定是在VBA中创建动态数组的最快或最有效的方法,但它是可行的选择。
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短