我正在尝试使用两个csv文件导入产品变体及其价格:
我需要的格式是size::3' x 5':-120
例如。
这是 config.csv 的样子:
SKU super_attribute_pricing
VTG100-130
VTG100-730
....
这是 variants.csv 的样子:
sku size price
VTG100-130 3' x 5' -120
VTG100-130 4' x 6' -80
VTG100-130 5' x 8' 0
VTG100-730 3' x 5' -120
VTG100-730 4' x 6' -80
....
如果 variants.csv 中的sku与 config.csv中的sku匹配,我如何使用上面的3个值并将其置于格式size::3' x 5':-120
中强>
我在super_attribute_pricing
列中尝试了这个值:
="size::"&[variants.csv]variant!B2&":"&[variants.csv]variant!C2&";"
但上述内容并未考虑 variants.csv 中sku列中的值是否与 config.csv 中的sku匹配。我希望只要SKU匹配就复制这些值 - 否则我想移动到下一行并继续比较直到它结束。
如何使用VBA执行此操作?
答案 0 :(得分:1)
这是解决问题的VBA代码。通过使用以下格式使用您希望描述所基于的单元格中的函数来调用它:
= GetSizes(A2,[variants.csv]变体$ A $ 2:$ A $ 6)
第一个参数是要查找的部分,第二个参数是尺寸表中的部件的绝对列表(变体)
此函数调用假定您从config.csv表调用它,并且表的第一个数据行分别在每个工作簿的A2中。适当更改工作表或单元格地址。编写代码的方式只需要传递部件号列表即可。偏移量将从您的尺寸和价格列中查找信息。
Function GetSizes(rngValue As Range, rngLookup As Range) As String
Dim strSizes As String
Dim strLookup As String
Dim rngTemp As Range
Dim cellval As Range
Set rngTemp = rngLookup
strLookup = rngValue.Value
strSizes = "size::"
For Each cellval In rngTemp
If cellval.Value = strLookup Then
strSizes = strSizes & cellval.Offset(0, 1).Value & ":" & cellval.Offset(0, 2).Value & ";"
End If
Next
If strSizes = "size::" Then strSizes = ""
If Right(strSizes, 1) = ";" Then strSizes = Left(strSizes, Len(strSizes) - 1)
GetSizes = strSizes
End Function
请注意,如果没有匹配的部件号,它将返回一个空字符串。
祝你好运。