![](/img/trans.png)
[英]Arranging a multi-column text file into a 2-column format, VBA or Python
[英]Excel VBA MACBOOK - Delimited Row Values to stacked 2-Column
我一直在尋找這個問題的答案,並發現多個解決方案不適用於我的 Excel for Mac 版本 (v16.33 2020)
1.使用不兼容的Power Query
2.我跟着這個鏈接在這里: LINK它使用Scripting.Dictionary
但是在使用它時,我不斷收到錯誤消息:
"Runtime Error '429'
Active X can't create object
3. 我從http://www.sysmod.com/Dictionary.zip下載了更新的Dictionary.cls
和KeyValuePair.cls
4.更新代碼后:
Set dAttributes = New Dictionary
Set dValues = New Dictionary
我收到一個錯誤,因為 k 為空: For Each k In dic
問題:我有一個 2 列的分隔值列表,我必須將它們放入 excel 上的堆疊列中。 要保留在左列中的標識符。 這樣做的原因是我們正在使用的程序需要項目 ID 標題,以及每個相關產品 URL 的一行。
例如:
Column A
| Column B
Item 1
| a.jpg, b.jpg, c.jpg
Item 2
| a.jpg, b.jpg, c.jpg
需要是:
Column A
| Column B
Item 1
| a.jpg
Item 1
| b.jpg
Item 2
| a.jpg
Item 2
| b.jpg
項目和圖像的值都不同。 有數百行和值,因此復制粘貼手動轉置不是一個可行的選擇。
目前我的代碼在這里:我被卡住了。 請評論解決此問題的步驟。 我已經嘗試了建議的鏈接,但沒有任何效果。
Sub ttt()
Dim dic As Object:
Set dAttributes = New Dictionary
Set dValues = New Dictionary
Dim x&, cl As Range, rng As Range, k, s
Set rng = Range([C1], Cells(Rows.Count, "C").End(xlUp))
x = 1 'used as a key for dictionary and as row number for output
For Each cl In rng
For Each s In Split(cl.Value2, ",")
dic.Add x, Cells(cl.Row, "A").Value2 & "|" & _
Cells(cl.Row, "B").Value2 & "|" & LTrim(s)
x = x + 1
Next s, cl
For Each k In dic
Range(Cells(k, "A"), Cells(k, "C")).Value2 = Split(dic(k), "|")
Next k
End Sub
您不需要為此使用字典 - 從 ColB 拆分值並循環遍歷數組:對於每個元素,將 ColA 中的值和元素值寫出到新行。
Dim rw As Range
Dim ws As Worksheet, arr, e, c As Range
Set ws = ActiveSheet
Set c = ws.Range("H1") '<< start of output
'loop over input rows
For Each rw In ws.Range("A1").CurrentRegion.Rows
arr = Split(rw.Cells(2).Value, ",")
For Each e In arr
c.Resize(1, 2).Value = Array(rw.Cells(1).Value, Trim(e))
Set c = c.Offset(1, 0) 'next output row
Next e
Next rw
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.