基本上我经营着一家有各种服装产品的Magento商店。我需要以某种方式使用excel,以便输入我的产品名称,SKU和属性,以生成Magento csv导入文件。
我有很多属性,如颜色,腿部大小,腰围尺寸。
例如,一种产品可能具有以下潜在属性
货物长裤 -
颜色:黑色,海军蓝,卡其色
腿部尺寸:31,33,35
腰围:32,34,36,38,40,42
我需要以某种方式设置一个循环,它可以获取值并按以下格式排列
颜色| LegSize |腰部|
黑色| 31 | 34 |
黑色| 31 | 36 |
黑色| 31 | 38 |
等
我希望我说清楚。例如,该产品将有超过54种变化。
我真的希望能够输入各种变化,并且精益求精。
答案 0 :(得分:0)
递归函数调用怎么样,而不是循环?
以下是我如何构建数据以回答您的问题(我还没有足够的代表来发布图片,所以这是我使用的表格的图表:
+---------------------------------------+ | | A | B | C | |---------------------------------------| | 1 | Cargo Trousers | | | |---------------------------------------| | 2 | Colours | Leg Size | Waist | |---------------------------------------| | 3 | Black | 31 | 32 | |---------------------------------------| | 4 | Navy | 33 | 34 | |---------------------------------------| | 5 | Khaki | 35 | 36 | |---------------------------------------| | 6 | | | 38 | |---------------------------------------| | 7 | | | 40 | |---------------------------------------| | 8 | | | 42 | +---------------------------------------+
这里有一大堆代码可以用来获取你想要的列表。请注意,它正在寻找空单元格,所以不要跳过。 :)
Option Explicit
Dim HomeSheet As String
Dim NewSheet As String
Function GetAllPermutations()
HomeSheet = ActiveSheet.Name 'Where we start from
NewSheet = Sheets.Add.Name 'Place to put new stuff
Sheets(HomeSheet).Select
RecursivePermutations "", 1, 0
End Function
Function RecursivePermutations(ByVal CurrentValue As String, ByVal SourceColumn As Long, ByRef OutputRow As Long)
Dim x As Long
Dim myText As String
For x = 3 To Cells.Rows.Count
'Is this row's value empty? Then we need to exit
If Cells(x, SourceColumn) = "" Then
If x = 3 Then
'We hit a brand new blank column, time to write it out
OutputRow = OutputRow + 1
Sheets(NewSheet).Cells(OutputRow, 1) = CurrentValue
End If
'All done here
Exit Function
End If
If SourceColumn = 1 Then
'First time through loop for this base value
myText = Trim(Cells(x, SourceColumn))
Else
'Add another one
myText = "|" & Trim(Cells(x, SourceColumn))
End If
'Make recursive call to self
RecursivePermutations CurrentValue & myText, SourceColumn + 1, OutputRow
Next x
End Function