Excel 2016复制所有在Excel VBA中重复的第一个字符之后的所有内容

我有每行的数字序列,我想copy and paste每个序列旁边的单元格的最后数字。 该序列包含两个点,我想复制并粘贴第一个点后面出现的所有内容。

检查下面的示例:

 Sequence: "12345678.11.11" Result should be: "11.11" 

在不同的单元格中。

任何想法呢? 无论是VBA编码或正常的Excel表单编码都可以。 稍后我会插入到VBA中。

谢谢你的帮助。 问候,蒂博尔

试试这个(注释)的代码

 Option Explicit Sub main() Dim cell As Range With Worksheets("MySheet") '<--| change "MySheet" to your actual sheet name For Each cell In .Range("A1:A10").SpecialCells(xlCellTypeConstants) '<--| change "A1:A10" to your actual range with dotted numbers cell.Offset(, 1) = "'" & Split(cell, ".")(1) & "." & Split(cell, ".")(2)'<--| write last to dotted numbers in cell adjacent to current one Next cell End With End Sub 

如果它始终是第一句句号,则可以在电子表格中使用以下函数而不是VBA(单元格A1上的示例):

 =RIGHT(A1, (LEN(A1) - FIND(".", A1))) 

我不会build议VBA,因为工作表函数对于这样的事情是很好的:

 =MID(A1,FIND(".",A1)+1,100)) =REPLACE(A1,1,FIND(".",A1),"") 

这只是两个还没有给出的例子


如果你想给VBA一个去,把这个函数添加到你的VBA编辑器中的一个模块:

 Function GetRight(rng As Range) GetRight = Right(rng.value, Len(rng.value) - InStr(rng.value, ".")) End Function 

…然后简单地使用这个工作表上的function

 =GetRight(A1) 

你可以像普通函数一样拖动它

编辑

如果您希望VBAfind列A中的所有值并将所需的输出返回到列B,则这是完整的代码

 Sub GetAllRight() Dim rng As Range, r As Range With ThisWorkbook.Worksheets("Sheet1") Set rng = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp)) End With For Each r In rng r.Offset(0, 1).Value = GetRight(r) Next r End Sub Function GetRight(rng As Range) As String GetRight = Right(rng.Value, Len(rng.Value) - InStr(rng.Value, ".")) End Function