Excel vba 字典循环停止响应

问题描述 投票:0回答:1
' Find the last row in both sheets
dictwslr = dictws.Cells(dictws.Rows.Count, dictkey_Col).End(xlUp).Row


' Populate branch dictionary from dictsheet. Add Multiple Columns if necessary using pipe separator
'Add pipe separated values for every column to be stored in the dictionary
Dim dictkeys As Variant
Dim dictValues As Variant
dictkeys = dictws.Range(dictkey_Col & dictstartrow & ":" & dictkey_Col & dictwslr).Value
dictValues = dictws.Range(dictvalue_col1 & dictstartrow & ":" & dictvalue_col1 & dictwslr).Value
For i = 1 To UBound(dictkeys, 1)
Dict.Item(dictkeys(i, 1)) = dictValues(i, 1)
Next i

我正在尝试用上面的代码构建一个脚本字典。 dictwslr 的值为 208731,dictstartrow 的值为 2。将范围读入数组后,代码循环遍历数组并构建字典。循环一直运行,Excel 停止响应。可能是什么问题以及解决方法是什么?

excel vba dictionary
1个回答
0
投票

在本例中,通过使用 VBA CStr 函数将字典键转换为字符串解决了该问题。原因可能是键的值是 14 个数字字符,除非转换为字符串,否则可能是处理缓慢的原因。

© www.soinside.com 2019 - 2024. All rights reserved.