【发布时间】:2018-03-24 08:48:17
【问题描述】:
我一直使用这段代码作为起点:https://danwagner.co/how-to-transpose-horizontal-data-to-vertical-data-for-easy-pivot-tables/
我的一个单元格Ax(x指数字),内容是ABCDEFGHI,我想每2个字符对单元格进行子串化,最后一组是3个字符。最终结果如下:
AB CD EF GHI
在第 44 行,使用变量
varDetails = .Range(.Cells(lngIdx, 1), .Cells(lngIdx, 4))
并认为这是我需要修改代码的地方。我对 VBA 不够流利,需要一些帮助。
【问题讨论】:
-
Mid()提取子字符串。如果您在使用Mid()时遇到问题,请说明问题所在。您提供的代码 sn-p 缺少上下文(说它在第 44 行对我们没有帮助)并且似乎与您的其余问题无关。 -
我不知道如何将它与上述变量中的范围与我正在使用的代码结合起来。
-
如果
varDetails包含这个9 个字符的字符串,那么您可以使用Mid()来提取您想要的子字符串。这是一个易于使用的功能:homeandlearn.org/excel_vba_mid_function.html -
我正在使用代码(请参阅原始帖子中的链接)尝试使用与代码示例相同数量的单元格来反透视数据。而不是使用单元格 A2-A4,我宁愿使用单元格 A1 ABCDEDGHI 并将其子串到 A2-A4
-
如果您不希望
lngIdx从2开始,而是希望它从 5 开始,请将For lngIdx = 2 To lngLastRow中的 2 替换为 5。这似乎解决了您的问题评论。不是听起来刺耳,但是如果您想使用VBA,那么您应该学习VBA。对您在 Internet 上找到但不理解的代码进行随机更改并不是获得所需代码的可靠方法。