更容易在VBA中进行分类的代码

时间:2016-05-15 20:45:27

标签: excel vba excel-vba

我的Bigcommerce网站包含有父/子设置的类别(例如):

Food>

     Jam>

     Coffee>

Clothes>

     Shirts>

           Dress>

           T-Shirts>

当我从API中提取类别时,它会为我提供类别名称,以及Excel工作表中的每个类别父类别:

ID Parent Name

101 0食物

102 101 Jam

103 101咖啡

我正在尝试创建分类法,所以我得到了

食品

食品和GT;果酱

食品和GT;咖啡

衣服

衣服GT;衬衫

衣服GT;衬衫>连衣裙

我一直在努力寻找一种方法在VBA中使用循环来获得最终结果,但没有成功。

没有找你编写我的代码,但是有关最佳方法的任何指导?

2 个答案:

答案 0 :(得分:1)

您的结构类似于段落编号结构或WBS (工作分解结构)

在段落编号结构中,子或子项的ID是最右侧编号:

1.1.2.3  Whatever

3 是段落的ID。在您的情况下,项目ID似乎是最左侧的号码。

我会在两遍中查看数据:

    第一遍中的
  • 建立一个翻译表,将项目的名称与其数字
  • 相关联
  • 在第二次传递中,用相关名称替换数字并正确格式化每条记录从右到左的性质

一旦您确定了方法并编写了一些代码,我们就可以为您提供进一步的帮助。

答案 1 :(得分:1)

这是一些让你走向正确方向的代码

输入 input

输出 output

我的代码循环遍历特殊单元格并将它们连接起来并将结果添加到新工作表

Sub ashTax()

Dim wsCopyFrom As Worksheet
Dim wsCopyTo As Worksheet
Dim rng As Range
Dim cell As Range
Dim str As String

Set wsCopyFrom = ThisWorkbook.ActiveSheet
ThisWorkbook.Worksheets.Add after:=wsCopyFrom
Set wsCopyTo = ThisWorkbook.ActiveSheet

Set rng = wsCopyFrom.UsedRange.SpecialCells(xlCellTypeConstants)


wsCopyTo.[a1].Value = "Results"

For Each cell In rng
str = str + cell.Value
Cells((Cells(Rows.Count, "a").End(xlUp).Row) + 1, "a").Value = str
Next

End Sub