excel - 如何重新调整/保留我的数组以防止运行时错误 9
问题描述
我创建了一个 API 来从 Wix 网站(未显示)获取数据,然后它替换字符串中的值,然后通过 text to column 函数将字符串拆分为列。然后它将范围存储在一个数组中,我已添加laArray
到监视窗口,我可以看到 laArray(1 到 56) 的每个实例,但问题是我run time error 9, Subscript out of range
在尝试遍历数组以获得每个数组值时遇到问题作为垂直列表而不是水平列表。
我最初确实尝试使用字符串操作而不是文本到列并替换,但需要快速修复,所以最终以这种方式进行。
JSON = Cells(1, 1)
lcReplace = Array("}", "{", "/", "\", """", ":", ";", "items", "[", "]", "_")
For Each A In lcReplace
JSON = Replace(JSON, A, " ")
Next A
Cells(2, 1) = JSON
Cells(2, 1).Select
Selection.TextToColumns Destination:=Range("A4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False
g = Cells(4, 1).End(xlToRight).Column
Dim laArray As Variant
laArray = (Range(Cells(4, 1), Cells(4, g)).Value2)
laArray = Application.Transpose(Range(Cells(4, 1), Cells(4, g)))
For f = LBound(laArray) To UBound(laArray)
Cells(f + 4, 3) = laArray(f)
Next f
概括:
尝试使单元格等于我的数组时出现运行时错误 9,从我读过的内容来看,我需要 Redim 保留数组,我在 f 循环之前和中尝试过,但它仍然返回运行时错误,我该如何防止这个?从我读过的内容来看,是否有替代尺寸标注的方法,它会使代码在多次标注尺寸时变得相当慢。
任何帮助,将不胜感激。
解决方案
laArray
是一个二维数组,可以使用 Watch 窗口确认。
例如,如果g
为 10,则laArray
大小为1 to 10, 1 to 1
.
您需要使用当前方法指定第二个维度。
Cells(f + 4, 3) = laArray(f, 1)
推荐阅读
- python - 返回一个列表,其中包含另一个列表中列表的每个单词的出现
- python - 从下拉菜单和“更多结果”网页中抓取数据
- python - buildHeap 的 Big-O 运行时是什么?
- azure - 无法对 Azure Data Lake Gen2 文件使用通配符
- artifactory - 使用 REST api 将工件作为包部署到 Artifactory
- amazon-web-services - 私有子网中与 AWS AD 连接器的无缝 AD 连接
- c# - 这种加密方法对于 Windows 应用程序是否安全?
- python - Python OpenCV 没有正确读取这个文件?
- vba - 向 Word VBA 中的每个后续单元格添加一个新单词
- ruby-on-rails - 如果我无法在模型内创建一个过去日期被禁止的对象,如何使用 RSpec on Rails 测试过去的日期?