格雷姆,让我知道你是否可以创建基于示例的VBA宏。
我刚刚写了一个可以完成这项工作的工具,虽然表现得很高雅。
< -----------码开始--------->
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
< --------- CODE END --- ------>
它所做的是从左向右遍历列表,直到找到空单元格为止。它内部不断运行一个循环4次。在第一次通过时,它假设你的号码在那里,并立即写入。在另外3次通过时,它检查下一个接收到的单元是否是数字。如果它是一个数字,它知道用短划线填补空白,如果它不是一个数字,则使用找到的字符。
让我知道这是否解决了您的问题。在我的例子中,它像一个魅力。
问候,
罗伯特Ilbrink
你可以用一个例子阐明此,呈现出既要接收和它是什么,你到底想要什么? – 2011-12-19 13:09:10
嗨罗伯特,作为一名新用户,我不允许使用图片。因此将每个数字和字母想象成一个单独的Excel单元格!谢谢! – Graeme 2011-12-20 03:32:02
我知道这是多么令人沮丧,当我不允许上传图片,甚至在网页上评论...... – 2011-12-20 19:50:01