将单列文本分为多列
我正在尝试创build一个macros,它将根据项目types将一列中的数据分成多个列。 我试图分类的数据是合同中有关项目的元数据的合同清单。
原始数据如下所示:
合同号合同名称项目types项目描述 111111巧克力用品POTS 5“ 111111巧克力用品POTS 10“ 111111巧克力用品POTS 15“ 111111巧克力用品PANS 5“ 111111巧克力用品PANS 10“ 111111巧克力用品PANS 15“ 111111巧克力用品刀削皮刀 111111巧克力用品银器沙拉叉子 111111巧克力用品银器餐叉 111111巧克力用品银器甜品叉 111111巧克力用品银器甜品勺子 111111巧克力用品银器汤匙 22222汤和沙拉订购POTS 10“ 22222汤和沙拉订购POTS 15“ 22222汤和沙拉订购PANS 15“ 22222汤和沙拉命令刀黄油刀 22222汤和沙拉命令刀面包刀 22222汤和沙拉点菜刀削皮刀 22222汤和沙拉订购SILVERWARE汤匙
最后的数据需要像这样(编辑包含图像):
合同合同名称POTS PANS刀银器 111111巧克力用品5“5”削皮刀沙拉叉 10“10”晚餐叉子 15“15”甜点叉子 甜点勺子 汤匙 22222汤和沙拉订购10“15”黄油刀汤勺 15“面包刀 削皮刀
#我到目前为止所尝试的#
目前我正在使用的粗略解决scheme是:
– 运行查询
– 将数据粘贴到Excel中
– 创build一个枢纽
– 根据需要使用一系列计数,偏移和间接公式来重新组织数据
– 由于上述过程会在每个合同部分之间留下空行,我将数据复制粘贴到新的工作表中,放置一个自动filter并删除空行
…和瞧,这是最后的报告。
#可能的VBA解决scheme#
我发现这个教程似乎正是我想要的,除了我需要macros开始一个新的部分,当合同没有的问题。 变化。 我不知道如何获得下面的VBA代码也检查合同号。
我很乐意提供任何帮助。 提前致谢!
#来自奥斯卡的get-digital-help [dot] com的教程代码。 #
这不是我的代码,我完全相信奥斯卡的教程让我朝着正确的方向前进。
Sub Categorizedatatocolumns() Dim rng As Range Dim dest As Range Dim vrb As Boolean Dim i As Integer Set rng = Sheets("Sheet1").Range("A4") vrb = False Do While rng <> "" Set dest = Sheets("Sheet1").Range("A20") Do While dest <> "" If rng.Value = dest.Value Then vrb = True End If Set dest = dest.Offset(0, 1) Loop If vrb = False Then dest.Value = rng.Value dest.Font.bold = True End If vrb = False Set rng = rng.Offset(1, 0) Loop Set rng = Sheets("Sheet1").Range("A4") Do While rng <> "" Set dest = Sheets("Sheet1").Range("A20") Do While dest <> "" If rng.Value = dest.Value Then i = 0 Do While dest <> "" Set dest = dest.Offset(1, 0) i = i + 1 Loop Set rng = rng.Offset(0, 1) dest.Value = rng.Value Set rng = rng.Offset(0, -1) Set dest = dest.Offset(-i, 0) End If Set dest = dest.Offset(0, 1) Loop Set rng = rng.Offset(1, 0) Loop End Sub
你可以考虑使用数据透视表,它会给出类似的输出。
closures小计,并以表格forms显示所有字段的数据。