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