Excel 相加-vba

Excel 相加-vba,excel,vba,Excel,Vba,我想帮助,如果可能的话,与代码,将做以下 B列有10种不同的内容变体,从单元格B2开始,长度始终为10个字符 我想将B列中的10种不同的内容变为第1行的标题,从C列开始 接下来,我希望宏从A2开始查看A列中的内容。然后我想使用B2中的内容来区分A2中的内容属于哪个标题(分别位于同一行)。现在,我不想把A2的实际内容放在标题下,而是想把数字1放在标题下 现在我想对A:B列中的每一行继续这种模式 发生重复时,我希望删除发生重复的行,并将原始引用增加1 我意识到我可以使用透视表,但我想尝试使用宏来代替

我想帮助,如果可能的话,与代码,将做以下

B列有10种不同的内容变体,从单元格B2开始,长度始终为10个字符

我想将B列中的10种不同的内容变为第1行的标题,从C列开始

接下来,我希望宏从A2开始查看A列中的内容。然后我想使用B2中的内容来区分A2中的内容属于哪个标题(分别位于同一行)。现在,我不想把A2的实际内容放在标题下,而是想把数字1放在标题下

现在我想对A:B列中的每一行继续这种模式

发生重复时,我希望删除发生重复的行,并将原始引用增加1


我意识到我可以使用透视表,但我想尝试使用宏来代替。

你知道如何使用循环吗。我猜是的,因为你在一个编程网站上

我记得在我做VBA工作时,看到了大多数使用范围(a:b)的Excel VBA教程,这对于使用循环来说并不优雅

您可以使用单元格(x,y)访问单个单元格,该单元格允许您指定x和y坐标,因此A1变为1:1,A10变为10:1,以此类推

这应该可以帮助你开始。从这里开始,你需要进行逻辑思考,并用谷歌搜索你不知道的东西,即用谷歌搜索“Excel VBA范围副本”,这将为你找到范围内的副本提供思路


你所要求的大多数东西都需要简单的逻辑或谷歌搜索。试着自己做,如果你在特定的点上卡住了,那么你可以发布那些特定的问题

第一部分很简单,下面的代码应该是您想要的,只需将其放入标准代码模块中即可:

Private Sub transposeHeadings() '//Use built-in filter function to get all unique entries from column B and paste to C1 Range("B:B").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("C1"),unique:=True '//Copy this filtered list Range("C2:C11").Copy '//Paste into row 1, using transpose to change the rows into columns Range("C1").PasteSpecial Paste:=xlPasteAll, Transpose:=True '//Delete the temporary filtered list Range("C2:C11").ClearContents '//Remove the copy bounding box Application.CutCopyMode = False End Sub 专用子标题() “//使用内置的筛选函数从列B获取所有唯一的条目并粘贴到C1 范围(“B:B”)。高级筛选器操作:=xlFilterCopy,CopyToRange:=Range(“C1”),唯一性:=True “//复制此筛选列表 范围(“C2:C11”)。副本 “//粘贴到第1行,使用转置将行更改为列 范围(“C1”)。粘贴特殊粘贴:=xlPasteAll,转置:=True “//删除临时筛选列表 范围(“C2:C11”).ClearContents “//删除复制边界框 Application.CutCopyMode=False 端接头 注意,这使用了硬编码的范围,您可以使用named/使其更加健壮

然而,我担心你问题的第二部分有太多的未知数,无法尝试提供一些有用的代码,我甚至不确定我是否完全理解你想要做什么

正如Ankur所建议的那样,你自己来一次狂欢,然后带着你正在努力解决的任何细节回来。

我想我能理解

如果数据是这样的

BRAND   ITEM
Bic     Eraser
Bic     Pencil
Bic     Pencil
Pentel  Marker
Sharpie Marker
Sharpie Marker
最终结果应该是这样的

BRAND   ITEM    Marker  Eraser  Pencil
Bic     Eraser          1
Bic     Pencil                  2
Pentel  Marker  1
Sharpie Marker  2
如果是这样,我建议您按“品牌”(键1)和“项目”(键2)排序。这样,副本将彼此相邻。如果您将“品牌”和“项目”组合在一起,然后使用该键进行排序、比较和计数,可能会更容易


我通常喜欢在可能需要删除行时从最后一行开始。这样,我可以使用一个漂亮的for循环。嗯?试试看。

这两种方法都有帮助吗?把一个标记为答案或改写你的问题怎么样?