我有一列数据,其中一个单词在它下面被翻译了4次。然后在列中重复执行所有这些操作。我想要有4列,每种语言的翻译在每一个。它们目前堆叠在一起。我已经尝试了一个宏,但似乎不能让它循环。
Range("B3").Select
Selection.Cut
Range("C2").Select
ActiveSheet.Paste
Range("B4").Select
Selection.Cut
Range("D2").Select
ActiveSheet.Paste
Range("B5").Select
Selection.Cut
Range("E2").Select
ActiveSheet.Paste
Range("B6").Select
Selection.Cut
Range("B3").Select
ActiveSheet.Paste
Range("B7").Select
Selection.Cut
Range("C3").Select
ActiveSheet.Paste
Range("B8").Select
Selection.Cut
最好是使用剪切,然后将第一列向上移动,然后重复相同的操作?
附图的数据在左边和它应该如何看起来在右边。感谢您的指点,谢谢。
发布于 2018-09-06 00:45:02
暂时假装语言是井然有序的,下面是几种不同的做事方式:
1)公式- =Index(A:A,Row()*4+1)
(将1改为2、3、4,视情况而定)
2) VBA简单循环基础-
For i = 2 to LastRowA
if i mod 4 = 1 then
LastRowB = 'LastRow for column B
ws.range("B" & LastRowB + 1) = ws.range("A" & i)
else if i mod 4 = 2 then
LastRowC = 'LastRow for column B
ws.range("C" & LastRowC + 1) = ws.range("A" & i)
else if i mod 4 = 3 then
LastRowD = 'LastRow for column B
ws.range("D" & LastRowD + 1) = ws.range("A" & i)
else if i mod 4 = 0 then
LastRowE = 'LastRow for column B
ws.range("E" & LastRowE + 1) = ws.range("A" & i)
End if
Next i
注意,这只是像这样的条件循环的粗略结构-语法需要进一步的调整和编辑(以及一些关于如何找到lastrow的研究)
我推荐公式化的方法。
另请注意:我列出的方法将保留原始数据,这是我在执行此类工作时的首选。如果有任何错误,它可以让你免费“重来一遍”。
https://stackoverflow.com/questions/52189946
复制相似问题