gpt4 book ai didi

excel - 在 VBA 中解析制表符分隔值

转载 作者:行者123 更新时间:2023-12-03 01:24:27 25 4
gpt4 key购买 nike

我正在尝试获取从 Excel 复制的剪贴板数据(即制表符分隔的文本)并将其解析为字典集合。这个想法是,每一行将由一个字典表示,该字典从标题映射到单元格值。复制数据中的第一行将包含标题。

从剪贴板获取文本非常简单:

Dim dataObj As DataObject
Dim clipString As String
Set dataObj = New DataObject
dataObj.GetFromClipboard
clipString = dataObj.GetText

然后我将输入分成几行:

Dim strRows As Variant

strRows = Split(clipString, vbNewLine)

接下来我尝试提取标题:

Dim headers As New Collection
Dim strCols As Variant
strCols = Split(strRows(0), vbTab)

For col = LBound(strCols) To UBound(strCols) - 1
headers.Add strCols(col)
Next

最后我提取行:

Dim cells
Dim rows As New Collection

For i = 1 To UBound(strRows) - 1
strCols = Split(strRows(0), vbTab)
Set cells = CreateObject("Scripting.Dictionary")
For col = 0 To UBound(strCols) - 1
cells.Add headers.Item(col + 1), strCols(col)
Next
rows.Add cells
Next

但是,我收到错误。上线了

headers.Add strCols(col), col

Access 返回时出现运行时错误“12”:类型不匹配。

更新修复了上述问题,感谢您的建议。现在我在线上遇到错误

Set cells = CreateObject(Scripting.Dictionary)

424:需要对象。

关于我哪里错了的任何提示 - VBA 并不是我的强项。

更新 2 也修复了此问题(感谢下面的建议)。代码现在可以运行了。

最佳答案

对于你的第二个问题——你需要提供目标类的字符串名称,所以它实际上是

Set cells = CreateObject("Scripting.Dictionary")

关于excel - 在 VBA 中解析制表符分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1032088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com