【问题标题】:Easier Code for Taxonomy in VBAVBA 中更简单的分类代码
【发布时间】:2016-05-16 12:50:37
【问题描述】:

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

Food>

     Jam>

     Coffee>

Clothes>

     Shirts>

           Dress>

           T-Shirts>

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

ID 父母姓名

101 0 食物

102 101 果酱

103 101 咖啡

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

食物

食物>果酱

食物>咖啡

衣服

衣服>衬衫

衣服>衬衫>连衣裙

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

不是找你来写我的代码,而是找你写代码的最佳方法?

【问题讨论】:

  • 原始列表与第三层的外观如何?

标签: vba excel


【解决方案1】:

这是一些代码,可以让你朝着正确的方向前进

输入

输出

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

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

【讨论】:

  • 帮助很大!谢谢。
【解决方案2】:

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

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

1.1.2.3  Whatever

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


我会分两次检查数据:

  • 在第一阶段建立一个翻译表,将项目的名称与其编号关联起来
  • 在第二遍中,将数字替换为关联的名称并正确格式化每条记录的从右到左的性质

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2016-11-17
    • 2017-08-25
    • 2018-07-23
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    相关资源
    最近更新 更多