用于在列

时间:2016-10-16 17:21:38

标签: excel vba excel-vba csv macros

我是一名业务开发人员,但我们支持部门的问题有时需要我处理客户的CSV文件,即包含产品目录的Excel电子表格。

现在我有一个来自在线商店的导出CSV,其中第一列按以下方式格式化:

Name_of_the_product - {商店类别)

e.g。索尼NEX-6 - {数码相机}

我需要一个宏/脚本来剪切{}之间的单词并将其粘贴到右边的列中,而不是{}。这样我将拥有干净的产品名称,即Sony NEX-6,以及每种产品的商店类别,例如:数码相机(我需要通过第三方解决方案推送产品)。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

我假设你的数据在A栏。并且有100行。

    Dim WrdArray() As String
    Dim text_string As String
    Dim LeftSide As String
    Dim RightSide As String

    For i = 1 To 100
       text_string = Range("A" & i).Value
       WrdArray() = Split(text_string, "{")
       LeftSide = WrdArray(LBound(WrdArray))
       RightSide = WrdArray(UBound(WrdArray))
       Range("A" & i).Value = LeftSide
       Range("B" & i).Value = Replace(Result, "}", "")
    Next i

如果您想了解分割功能,可以参考此博客文章。 http://www.excelvbasolutions.com/2015/06/split-function.html

答案 1 :(得分:0)

我设法使用以下功能来完成它:

= MID(A2;发现(" [&#34 ;; A2)+1;查找("]"; A2) - 查找(" [&#34 ;; A2) - 1)

现在唯一要做的就是删除从A列复制的内容(包括[]) - 是否有人对宏有所了解?我希望我可以使用Feed管理解决方案中的搜索/替换功能来使用它,但我正在检查我们的支持。

谢谢大家!