Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel-从单元格末尾检索数字并移动到开始位置_Excel_Vba_Numbers_Move - Fatal编程技术网

Excel-从单元格末尾检索数字并移动到开始位置

Excel-从单元格末尾检索数字并移动到开始位置,excel,vba,numbers,move,Excel,Vba,Numbers,Move,我有一个输出的excel表,在一列中的单个单元格中有地址,但门牌号位于单元格值的末尾 AAA Street 10 BBB Street 11 是否有一个脚本,如果单元格包含一个数字,它将获取该数字并将其放置在单元格的开头,使其看起来像: 10 AAA Street 11 BBB Steet 我有一个系统,可以将这些信息生成地址标签,但我的国家邮政局在开始时需要这个号码。这非常复杂,但有一种方法可以实现这一点,那就是使用以下公式来获取您要找的信息: =RIGHT(SUBSTITUTE($A2,

我有一个输出的excel表,在一列中的单个单元格中有地址,但门牌号位于单元格值的末尾

AAA Street 10
BBB Street 11
是否有一个脚本,如果单元格包含一个数字,它将获取该数字并将其放置在单元格的开头,使其看起来像:

10 AAA Street
11 BBB Steet
我有一个系统,可以将这些信息生成地址标签,但我的国家邮政局在开始时需要这个号码。

这非常复杂,但有一种方法可以实现这一点,那就是使用以下公式来获取您要找的信息:

=RIGHT(SUBSTITUTE($A2," ","/",LEN($A2)-LEN(SUBSTITUTE($A2," ",""))),LEN($A2)-SEARCH("/",SUBSTITUTE($A2," ","/",LEN($A2)-LEN(SUBSTITUTE($A2," ","")))))&" "&LEFT(SUBSTITUTE($A2," ","/",LEN($A2)-LEN(SUBSTITUTE($A2," ",""))),SEARCH("/",SUBSTITUTE($A2," ","/",LEN($A2)-LEN(SUBSTITUTE($A2," ",""))))-1)

就我个人而言,我会将以下部分指定给已定义的名称,并在公式中使用该名称:

SUBSTITUTE($A2,“,”/”,LEN($A2)-LEN(SUBSTITUTE($A2,“,”))


这样做只会使阅读更容易。

您可能没有每个单元格末尾的数字可供搜索。下面是一个公式,用于检查最后五个字符是否有空格,如果没有空格,其他人将交换找到的空格

=IF(IFERROR(FIND(“),MID(A2,LEN(A2)-5,50)),0)=0,A2,MID(A2,LEN(A2)-5,50)-(FIND(“,MID(A2,LEN(A2)-5,50))-1,40)&“&MID(A2,LEN(A2)-FIND(“,MID(A2,LEN)-5,50))

VBA溶液:

Option Explicit

Sub main()
    Dim cell As Range
    Dim element As Variant

    With Worksheets("MySheetName") ' change "MySheetName" to your actual sheet name
        For Each cell In .Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row) ' loop through columns A cells from row 1 down to last not empty one
            For Each element In Split(cell.value, " ") 'loop through current cell content string "elements" separated by spaces
                If IsNumeric(element) Then ' if current element is a "numeric" one
                    cell.value = element & " " & Replace(cell.value, element, "") 'move element at the beginning of the cell content
                    Exit For
                End If
            Next
        Next
    End With
End Sub

每个地址末尾的数字前是否总是有一个空格?例如,街道是否总是在门牌号之前有一个空格?是的,格式将在这方面保持一致。您是否得到过问题的答案?