我有一个宏,可以将文本转换为列,以便可以使用 PDF 文件中的数据。
虽然它工作得很好,但我想知道它是否可以开发。
我的数据应该是这样的:
Invoice 10-12-2017 USD 400,00
Creditmemo 18-12-2017 USD 205,60
Invoice 27-12-2017 USD 906,75
Invoice 29-12,2017 USD 855,00
Interest I12391 31-12-2017 USD 105
正如您可能从上面注意到的那样,“兴趣”行有一个额外的数字,这会阻止数据正确对齐。
我希望它看起来更像这样:
[Invoice] 10-12-2017 USD 400,00
[Creditmemo] 18-12-2017 USD 205,60
[Invoice] 27-12-2017 USD 906,75
[Invoice] 29-12,2017 USD 855,00
[Interest I12391] 31-12-2017 USD 105
到目前为止我所拥有的:
我的代码是这个ATM:
rng1 = Range("A3:A750")
Range(rng1).TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
目标:
我希望代码循环遍历我的数据,每当它找到“兴趣”时,它应该复制数字并将其插入“兴趣”之后。他们应该合并,而不是成为两个不同的单元格,并成为一个“兴趣 I12391”。然后数据将正确排列,因为“兴趣”行比其他行多了一行
我是否应该在“兴趣”上执行 .Find.Address,并使用 .Offset(0,1) 重用公式并将这两者合并?或者有没有更简单、更有效的方法呢?
除了主要问题......我是否可以使用 Range.TextToColums,所以它只影响我需要它的工作表,而不影响整个工作簿?