我的牢房有完整的地址。我想将街道名称和街道编号复制到下一个单元格。例如“ STRANDVEJEN 100 MIDDELFART丹麦”
在此示例中,我希望复制“ STRANDVEJEN 100”。
当前,所有内容都将复制到下一个单元格。 但我需要如何继续的建议
Sub move()
Range("C3:C2000").Copy Range("D3:D2000")
Do until......
End Sub
我需要帮助直到完成。
答案 0 :(得分:1)
尝试:
Option Explicit
Sub CopyYes()
Dim arr As Variant, strSplit As Variant
Dim i As Long
With ThisWorkbook.Worksheets("Sheet1")
arr = .Range("C3:C2000")
For i = LBound(arr) To UBound(arr)
strSplit = Split(arr(i, 1), " ")
.Range("E" & i + 2).Value = strSplit(0)
.Range("F" & i + 2).Value = strSplit(1)
Next i
End With
End Sub
结果:
答案 1 :(得分:0)
这是一个将对字符串执行“剪切”的函数。它不是很漂亮,毫无疑问用一个简单的reg-ex命令会更好,但是..
Function untilnumeric(txt As String) As String
Dim i As Long
Dim started As Boolean
For i = 1 To Len(txt)
If Asc(Mid(txt, i, 1)) > 47 And Asc(Mid(txt, i, 1)) < 58 Then
started = True
Else
If started = True And Asc(Mid(txt, i, 1)) = 32 Then
untilnumeric = Left(txt, i - 1)
Exit For
End If
End If
Next
End Function
您可以像这样使用它在C列上执行-将结果复制到D:
Range("D3:D2000").Value = Range("C3:C2000").Value
For Each c In Range("D3:D2000").Cells
c.Value = untilnumeric(c.Value)
Next
注意:稍作修改以拾取数字部分内的所有字母。例如100A