我收到的数据是连续编号的,但在每个数字下面,在下一个数字之前有0,1,2或3条信息。我需要分开数据,以便数字均匀分布! 任何帮助都会得到很大的帮助 - 我应该在大学做过Excel,但那是几十年前的事了! 谢谢, 格雷姆 嗨罗伯特,作为澳大利亚新用户,我不允许插入图像!因此想象每个逗号分隔单元格和短划线作为空Excel单元格,第一行是我最初收到的。 “g,h”等是句子。第二排是我想要实现的。不幸的是,它不会格式化显示单元格不会向下移动所以它必须在这里,就像在Excel或插入的图像中一样!谢谢!
接收1,g,h,2,k,3,a,c,v,4,5,r,t
要求1,g,h, - ,2,k, - , - ,3,a,c,v,4, - , - , - ,5,r,t, - ,
因此,如果我收到每个“号码”(客户端)的3条信息,则数字将自动均匀分布,但不幸的是,这不会发生!
答案 0 :(得分:0)
Graeme,如果您可以根据示例创建VBA Macro,请告诉我。
我刚刚写了一个能完成这项任务的人,虽然他很优雅。
< ----------- CODE START --------->
Sub uniformdata()
ReceiveCol = 1 'Column where received data starts
ReceiveRow = 1 'Row where where received data starts
PublishCol = 1 'Column where Published data starts
PublishRow = 2 'Column where Published data starts
Do Until Cells(ReceiveRow, ReceiveCol).Value = ""
For counter = 1 To 4
If counter = 1 Then
Cells(PublishRow, PublishCol).Value = Cells(ReceiveRow, ReceiveCol).Value
ReceiveCol = ReceiveCol + 1
Else
If IsNumeric(Cells(ReceiveRow, ReceiveCol).Value) Then
Cells(PublishRow, PublishCol).Value = "-"
Else
Cells(PublishRow, PublishCol).Value = Cells(ReceiveRow, ReceiveCol).Value
ReceiveCol = ReceiveCol + 1
End If
End If
PublishCol = PublishCol + 1
Next
Loop
End Sub
< ---------代码结束--------->
它的作用是从左到右遍历您的列表,直到找到一个空单元格。在它内部不断运行循环4次。在第一次传递时,它假定您的号码在那里,并立即写入。在其他3次传递中,它检查下一个接收的小区是否是数字。如果它是一个数字,它知道用短划线填充间隙,如果它不是一个数字,则使用找到的字符。
如果这解决了您的问题,请告诉我。在我的例子中,它就像一个魅力。
此致
罗伯特·伊尔布林克