如何在 excel 中对我的产品属性进行排序以进行 magento 导入
How can I sort my product attributes in excel for magento import
基本上我 运行 一家出售各种服装产品的 Magento 商店。我需要以某种方式使用 excel,以便我可以输入我的产品名称、SKU 和属性,以生成 Magento csv 导入文件。
我有很多属性,例如颜色、腿围、腰围。
例如,一件产品可能具有以下潜在属性
工装裤 -
颜色:黑色、海军蓝、卡其色
腿围:31、33、35
腰围:32、34、36、38、40、42
我需要以某种方式设置一个可以获取值并按以下格式排列它们的循环
颜色|腿围|腰围|
黑色 | 31| 34|
黑色 | 31| 36|
黑色 | 31| 38|
等等
希望我说清楚了。例如,该产品将有超过 54 种变体。
我确实希望能够输入变体并让 excel 完成艰苦的工作。
递归函数调用而不是循环怎么样?
这是我如何构建我的数据来回答你的问题(我还没有足够的代表来 post 图片,所以这是我使用的 table 的图表:
+---------------------------------------+
| | 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
基本上我 运行 一家出售各种服装产品的 Magento 商店。我需要以某种方式使用 excel,以便我可以输入我的产品名称、SKU 和属性,以生成 Magento csv 导入文件。
我有很多属性,例如颜色、腿围、腰围。
例如,一件产品可能具有以下潜在属性
工装裤 -
颜色:黑色、海军蓝、卡其色
腿围:31、33、35
腰围:32、34、36、38、40、42
我需要以某种方式设置一个可以获取值并按以下格式排列它们的循环
颜色|腿围|腰围|
黑色 | 31| 34|
黑色 | 31| 36|
黑色 | 31| 38|
等等
希望我说清楚了。例如,该产品将有超过 54 种变体。
我确实希望能够输入变体并让 excel 完成艰苦的工作。
递归函数调用而不是循环怎么样?
这是我如何构建我的数据来回答你的问题(我还没有足够的代表来 post 图片,所以这是我使用的 table 的图表:
+---------------------------------------+ | | 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