如果值与另一个值匹配,将内容从一个工作表复制到另一个工作表?

我试图用两个csv文件导入产品变体和他们的价格:

  1. config.csv (我试图放置变体/价格)
  2. variants.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 .... 

如何才能使用上面的3个值,并把它放在格式size::3' x 5':-120只要变种 .scv中的sku匹配config.csv中的sku?

我在super_attribute_pricing列中尝试了这个值:

 ="size::"&[variants.csv]variant!B2&":"&[variants.csv]variant!C2&";" 

但是上面不考虑variants.csv中的sku列中的值是否与config.csv中的sku匹配。 我想要复制这些值,只要SKU匹配 – 否则我想移动到下一行,coninue比较,直到它结束。

如何用VBA做到这一点?

这是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 

请注意,如果没有匹配的零件号码,它将返回一个空string。

祝你好运。